Un projet sur lequel j'ai récemment travaillé était basé sur PHP4. J'ai l'habitude de faire face à des objets face à PHP4, j'aurai forcément beaucoup d'inconfort :
ne le fait pas. prend en charge les mots-clés publics, statiques, privés et protégés. Le plus déprimant est que le destructeur n'est pas pris en charge :
Cet article utilisera la fonction registre_shutdown_de PHP pour simuler le destructeur. d'une classe en PHP4 Fonction
On enregistre le destructeur dans le constructeur :
class sample{ var $identified; function sample($iden){ $this->identified = $iden; register_shutdown_function(array(&$this, 'destructor')); //模拟析构函数 } function destructor(){ error_log("destructor executing, Iden is ". $this->identified); unset($this); } } $sample = new sample("laruence"); $sample2 = new sample("HuiXinchen");
Exécutez ce script, vous constaterez que le destructeur de l'objet est appelé correctement .
Parce que nous avons utilisé le mot-clé $this lors de l'enregistrement de la fonction de fermeture, même si votre variable opposée est écrasée, le destructeur peut toujours être appelé correctement, comme :
class sample{ var $identified; function sample($iden){ $this->identified = $iden; register_shutdown_function(array(&$this, 'destructor')); //模拟析构函数 } function destructor(){ error_log("destructor executing, Iden is ". $this->identified); unset($this); } } $sample = new sample("laruence"); $sample = "laruence"; //覆盖对象变量
$sample est écrasé, mais lorsque vous exécutez ce script, vous constaterez que le destructeur peut toujours être appelé correctement. Même le code suivant :
class sample{ var $identified; function sample($iden){ $this->identified = $iden; register_shutdown_function(array(&$this, 'destructor')); //模拟析构函数 } function destructor(){ error_log("destructor executing, Iden is ". $this->identified); unset($this); } } $sample = new sample("laruence"); unset($sample);
Le destructeur peut toujours être appelé correctement
.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!