__unset(), appelé lorsque unset() est appelé sur une propriété inaccessible.
Avant d'examiner cette méthode, jetons un coup d'œil à la fonction unset(). La fonction de unset() est de supprimer la variable spécifiée et de renvoyer true. Le paramètre est la variable à supprimer. .
Donc, si vous souhaitez supprimer un attribut membre à l'intérieur d'un objet en dehors d'un objet, pouvez-vous utiliser la fonction unset() ?
Il y a naturellement deux situations ici :
1. Si les attributs de membre dans un objet sont publics, vous pouvez utiliser cette fonction pour supprimer l'objet en dehors de l'objet. Propriétés publiques.
2. Si les attributs membres de l'objet sont privés, je n'aurai pas la permission de les supprimer en utilisant cette fonction.
Bien qu'il existe les deux situations ci-dessus, ce que je veux dire, c'est que si vous ajoutez la méthode __unset() à un objet, vous pouvez supprimer les attributs de membre privé de l'objet en dehors de l'objet. Après avoir ajouté la méthode __unset() à l'objet, lorsque vous utilisez la fonction "unset()" en dehors de l'objet pour supprimer les attributs de membre privé à l'intérieur de l'objet, l'objet appellera automatiquement la fonction __unset() pour nous aider à supprimer le membre privé. attributs à l’intérieur de l’objet.
Veuillez consulter le code suivant :
<?php class Person { public $sex; private $name; private $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } /** * @param $content * * @return bool */ public function __unset($content) { echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br>"; echo isset($this->$content); } } $person = new Person("小明", 25); // 初始赋值 unset($person->sex); unset($person->name); unset($person->age);
Résultat de l'exécution :
当在类外部使用unset()函数来删除私有成员时自动调用的 1当在类外部使用unset()函数来删除私有成员时自动调用的 1
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!