Beschreibung der magischen Methoden in PHP

无忌哥哥
Freigeben: 2023-04-01 21:24:02
Original
2067 Leute haben es durchsucht

* 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 &#39;<hr>&#39;;
Nach dem Login kopieren

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)?&#39;存在&#39;:&#39;不存在&#39;;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!