Maison > développement back-end > tutoriel php > Explication détaillée de la méthode __isset() en PHP

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

藏色散人
Libérer: 2023-04-07 06:28:01
original
15989 Les gens l'ont consulté

__isset(), appelé lorsque isset() ou empty() est appelé sur une propriété inaccessible

Avant d'examiner cette méthode, regardons l'application de isset( ), isset () est une fonction utilisée pour déterminer si une variable est définie. Elle transmet une variable en tant que paramètre. Si la variable transmise existe, elle renvoie vrai, sinon elle renvoie faux.

Donc, si vous utilisez la fonction isset() en dehors d'un objet pour déterminer si les membres à l'intérieur de l'objet sont définis, pouvez-vous l'utiliser ?

Il existe deux situations. Si les membres de l'objet sont publics, nous pouvons utiliser cette fonction pour mesurer les attributs des membres. S'il s'agit d'attributs de membres privés, cette fonction ne fonctionnera pas. privé Il est encapsulé et non visible de l’extérieur. Nous ne pouvons donc pas utiliser la fonction isset() en dehors de l'objet pour déterminer si les attributs des membres privés ont été définis ? Bien sûr, c’est possible, mais ce n’est pas gravé dans le marbre.

Il vous suffit d'ajouter une méthode __isset() à la classe. Lorsque la fonction isset() est utilisée en dehors de la classe pour déterminer si les membres privés de l'objet sont définis, la classe sera automatiquement appelée. La méthode __isset() à l’intérieur nous aide à effectuer de telles opérations.

Le rôle de __isset() :

Lorsque isset() ou empty() est appelé sur une propriété inaccessible, __isset() sera appelé.

Veuillez consulter la démonstration de code suivante :

<?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 __isset($content) {
        echo "当在类外部使用isset()函数测定私有成员{$content}时,自动调用<br>";
        echo  isset($this->$content);
    }
}
$person = new Person("小明", 25); // 初始赋值
echo isset($person->sex),"<br>";
echo isset($person->name),"<br>";
echo isset($person->age),"<br>";
Copier après la connexion

Les résultats d'exécution sont les suivants :

1 // public 可以 isset()
当在类外部使用isset()函数测定私有成员name时,自动调用 // __isset() 内 第一个echo
1 // __isset() 内第二个echo
当在类外部使用isset()函数测定私有成员age时,自动调用 // __isset() 内 第一个echo
1 // __isset() 内第二个echo
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal