Heim > Artikel > Backend-Entwicklung > Beschreibung der magischen Methoden in PHP
* Magische Methode:
* 1. Methoden, die mit doppelten Unterstrichen in der Klasse beginnen, sind vom System integriert.
* 2. Magic Die Methode wird unter bestimmten Bedingungen automatisch vom System ausgelöst und kann vom Benutzer nicht direkt aufgerufen werden.
* Hinweis: Es ist eine gute Angewohnheit, vor den privaten Mitgliedern in der Klasse einen einzelnen Unterstrich hinzuzufügen.
* Zum Beispiel: private $_salary; private function _listUsers(){...}
* Verwenden Sie magische Methoden, um mehrere Objektzugriffs-Interceptoren zu implementieren
* Die so- Dies wird als Interceptor bezeichnet: Es führt einige Fehler oder illegalen Zugriff auf Benutzer durch, um sie zu erkennen und zu kontrollieren.
* Wir haben bereits __get($fieldName) und __set() gelernt, die beiden am häufigsten verwendeten Interceptoren.
* Jetzt lernen wir einen weiteren Satz: __isset($fieldName) und __unset ($fieldName)
* 1. __isset(): Wenn überprüft wird, ob ein Klassenattribut außerhalb der Klasse existiert, wird es automatisch aufgerufen
* 2. __unset(): Wenn innerhalb der Klasse Wenn ein Klassenattribut extern zerstört wird, wird automatisch
class Demo { private $name = 'peter'; private $email = 'peter@php.cn'; //当在类外使用isset()检测某个属性是否存在时自动调用 public function __isset($name) { //对访问进行过滤:如果属性名是'name',返回false,否则允许访问 //即除了'name'属性外的其它属性允许外部进行isset()检测 return ($name=='name') ? false : true; } } //实例化 Demo 类 $obj = new Demo; //检测$obj中是否有name属性,返回 echo isset($obj->name)?'存在':'不存在'; echo '<hr>';
aufgerufen, um zu erkennen, ob das E-Mail-Attribut in $obj vorhanden ist, und es zurückzugeben, da __isset() in der Klasse true zurückgibt.
echo isset($obj->email)?'存在':'不存在';
Verwenden Sie unset( ) extern, um Klassenattribute zu zerstören
Das obige ist der detaillierte Inhalt vonBeschreibung der magischen Methoden in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!