Maison  >  Article  >  développement back-end  >  Explication détaillée de la méthode __unset() en PHP

Explication détaillée de la méthode __unset() en PHP

藏色散人
藏色散人original
2019-07-23 14:52:176997parcourir

__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=&#39;男&#39;)
    {
        $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!

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
Article précédent:Importation Excel TP5 (layui)Article suivant:Importation Excel TP5 (layui)