Maison  >  Article  >  développement back-end  >  Explication détaillée de l'arborescence d'enregistrement php

Explication détaillée de l'arborescence d'enregistrement php

无忌哥哥
无忌哥哥original
2018-06-28 16:15:102281parcourir

* Arbre d'enregistrement : En fait, il s'agit de créer un ensemble d'objets, également appelé pool d'objets, qui est stocké dans un tableau

//Déclarez d'abord trois classes, puis jetez-les dans l'objet tree

class Demo1 {}
class Demo2 {}
class Demo3 {}

//Déclarer les classes d'arbre d'enregistrement d'objets

class Register
{
    //静态属性中保存着所有已经挂载到树上的对象
    public static $objs = [];
    
    //将对象挂载到树上
    public static function set($index,$obj)
    {
        self::$objs[$index] = $obj;
    }
    
    //取出对象使用
    public static function get($index)
    {
        return self::$objs[$index];
    }
    
    //已经无效的对象,及时销毁,节省资源
    public static function del($index)
    {
        unset(self::$objs[$index]);
    }
}

//Instancier d'abord les trois classes puis les monter sur l'arborescence d'objets

Register::set('demo1',new Demo1);
Register::set('demo2',new Demo2);
Register::set('demo3',new Demo3);

// Vérifier s'il faut grimper à l'arbre ?

var_dump(Register::$objs);
echo &#39;<hr>&#39;;
echo &#39;<pre class="brush:php;toolbar:false">&#39;.print_r(Register::$objs,true).&#39;
'; echo '
';

//Utiliser la méthode get de la classe enregistrée pour vérifier

var_dump(Register::get(&#39;demo2&#39;));

//Supprimer un objet d'instance dans le pool d'objets

Register::del(&#39;demo2&#39;);

//Voir à nouveau l'objet demo2, il n'est plus visible car il a été détruit

var_dump(Register::get(&#39;demo2&#39;));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn