Maison  >  Article  >  développement back-end  >  Compréhension correcte du destructeur php

Compréhension correcte du destructeur php

黄舟
黄舟original
2017-07-02 10:10:371299parcourir

Si vous déclarez une fonction dans une classe, nommée construct, cette fonction sera traitée comme un constructeur et sera exécutée lors de la création d'une instance d'objet. Pour être clair, il y a deux traits de soulignement. autre fonction, un constructeur peut avoir des paramètres ou des valeurs par défaut. Vous pouvez définir une classe pour créer un objet et mettre toutes ses propriétés dans une instruction

Vous pouvez également définir une fonction appelée destruct, PHP appellera cette fonction. avant que l'objet ne soit détruit. Il s'appelle PHPDestructor.

L'héritage est une fonctionnalité puissante des classes. Une classe (classe enfant/classe dérivée) peut hériter des fonctions d'une autre classe (parente). classe/classe de base). La classe dérivée contiendra tous les attributs et méthodes de la classe de base, et peut ajouter d'autres attributs et méthodes à la classe dérivée. Vous pouvez également remplacer les méthodes et propriétés de la classe dérivée. Classe de base. Comme indiqué dans 3.1.2, vous pouvez hériter d'une classe en utilisant le mot clé extends.

Vous vous demandez peut-être comment les constructeurs sont hérités. Lorsqu'ils sont hérités avec d'autres méthodes, ils ne seront pas exécutés lorsque <.>création de l'objet.Si vous avez besoin de cette fonctionnalité, vous devez utiliser l'opérateur :: mentionné au chapitre 2. Il vous permet de pointer vers un
espace de noms . Espace de noms de la classe parent, et vous pouvez utiliser parent::construct pour appeler le constructeur de la classe parent

Certains langages orientés objet​​après les classes Constructeurs nommés La même chose était vraie pour les versions précédentes de PHP, et. cette méthode est toujours valable aujourd'hui. Autrement dit : si vous nommez une classe Animal et y créez une méthode nommée Animal, alors cette méthode est le constructeur si une classe a à la fois un constructeur de construction et une fonction portant le même nom que la classe. , PHP traitera construct comme un constructeur. Cela permet de continuer à utiliser les classes écrites dans les versions précédentes de PHP, mais les nouveaux scripts (PHP5) devraient utiliser construct.

La nouvelle méthode PHP de déclaration d'un constructeur permet au constructeur d'avoir un nom unique, quel que soit le nom de la classe dans laquelle elle se trouve. De cette façon, lorsque vous modifiez le nom de la classe, vous n'aurez pas besoin de changer le nom du constructeur.

Vous peut donner au constructeur en PHP une méthode d'accès comme les autres méthodes de classe. La méthode d'accès affectera la capacité d'instancier des objets à partir d'une certaine portée. Cela permet d'implémenter certains

modèles de conception fixes, tels que le modèle Singleton <.> Les destructeurs PHP, par opposition aux constructeurs. PHP les appelle pour détruire un objet de la mémoire. Par défaut, PHP libère uniquement la mémoire occupée par les propriétés et détruit les ressources associées à l'objet. exécutez du code arbitraire pour effacer la mémoire après avoir utilisé un objet.

Lorsque PHP décide que votre script n'est plus lié à l'objet, PHP analyse Le constructeur sera appelé Dans l'espace de noms d'une fonction, cela se produit lorsque la fonction revient. . Pour les variables globales, cela se produit à la fin du script. Si vous souhaitez détruire explicitement un objet, vous pouvez attribuer un pointeur à l'objet. Attribuez généralement une autre valeur à la variable.

Dans l'exemple suivant, comptez le nombre d'objets instanciés à partir de la classe. La classe Counter commence à s'incrémenter à partir du constructeur, en PHP le destructeur est dévalué

Une fois que vous avez défini une classe, vous pouvez. utilisez new pour créer une instance de cette classe. La définition de la classe est le dessin de conception et l'instance est le composant placé sur la chaîne d'assemblage. New Nécessite le nom de la classe et renvoie une instance de la classe. nécessite des paramètres, vous devez saisir les paramètres après new.

Lorsque vous créez une nouvelle instance de destructeur PHP, la mémoire sera prête à stocker toutes les propriétés. Chaque instance a son propre ensemble de propriétés. les méthodes sont partagées par toutes les instances de la classe.
< ?php   
class Counter { private static $count = 0;   
function construct() { self::$count++; }   
function destruct() { self::$count--; }   
function getCount() { return self::$count; } }   
//建立第一个实例  
$c = new Counter();  
 //输出1   
print($c->getCount() . "<br>\n");   
//建立第二个实例   
$c2 = new Counter();   
//输出2   
print($c->getCount() . "<br>\n");   
//销毁实例   
$c2 = NULL;   
//输出1  
 print($c->getCount() . "<br>\n");   
?>

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