__isset(), aufgerufen, wenn isset() oder empty() für ein unzugängliches Attribut aufgerufen wird
Bevor wir uns diese Methode ansehen, werfen wir einen Blick auf die Anwendung von isset( )-Funktion, isset() ist eine Funktion, die verwendet wird, um zu bestimmen, ob eine Variable als Parameter übergeben wird. Wenn die übergebene Variable existiert, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Wenn Sie also die Funktion isset() außerhalb eines Objekts verwenden, um zu bestimmen, ob die Mitglieder innerhalb des Objekts festgelegt sind, können Sie sie dann verwenden?
Es gibt zwei Situationen: Wenn die Mitglieder im Objekt öffentlich sind, können wir diese Funktion verwenden, um die Mitgliedsattribute zu messen. Der Grund dafür ist, dass sie es sind privat. Es ist gekapselt und von außen nicht sichtbar. Wir können die Funktion isset() also nicht außerhalb des Objekts verwenden, um festzustellen, ob die privaten Mitgliedsattribute festgelegt wurden? Natürlich ist es möglich, aber es ist nicht in Stein gemeißelt.
Sie müssen der Klasse nur eine __isset()-Methode hinzufügen. Wenn die isset()-Funktion außerhalb der Klasse verwendet wird, um zu bestimmen, ob die privaten Mitglieder im Objekt festgelegt sind, wird die Klasse automatisch aufgerufen. Die darin enthaltene Methode __isset() hilft uns, solche Vorgänge abzuschließen.
Die Rolle von __isset():
Wenn isset() oder empty() für eine unzugängliche Eigenschaft aufgerufen wird, wird __isset() aufgerufen.
Bitte sehen Sie sich die folgende Codedemonstration an:
<?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 __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>";
Die laufenden Ergebnisse sind wie folgt:
1 // public 可以 isset() 当在类外部使用isset()函数测定私有成员name时,自动调用 // __isset() 内 第一个echo 1 // __isset() 内第二个echo 当在类外部使用isset()函数测定私有成员age时,自动调用 // __isset() 内 第一个echo 1 // __isset() 内第二个echo
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der __isset()-Methode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!