PHP-Interceptor-Methoden umfassen: 1. „__get“-Methode, 2. „__set()“-Methode 3. „__isset()“-Methode; __call()“-Methode.
Welche Interceptor-Methoden bietet PHP
序号 | 方法名 | 作用 | 实现版本 |
1 | __get($property) | 访问未定义的属性时候,调用该方法 | >= PHP 5.3.0 |
2 | __set($property, $value) | 给未定义属性设置值的时候,调用该方法 | >= PHP 5.3.0 |
3 | __isset($property) | 对未定义属性调用isset()时,调用该方法 | >= PHP 5.1.0 |
4 | __unset($property) | 对未定义属性调用unset()时,调用该方法 | >= PHP 5.1.0 |
5 | __call($property, $args_array) | 调用未定义方法时,执行该方法 | >= PHP 5.3.0 |
Einzelheiten finden Sie unter http://php. net /manual/zh/sprache.oop5.magic.php Einführung
Was ist ein PHP-Interceptor?
Englischer Name „Interceptor“, seine Funktion besteht darin, Nachrichten abzufangen, die undefinierte Methoden und Attribute senden.
Sehen wir uns zunächst einen Codeabschnitt an, in dem ein Objekt $obj instanziiert wird und ein undefiniertes Attribut „lehrer“ erhalten wird.
<?php class School { } $obj = new School; var_dump($obj->teacher);
Wenn Sie die PHP-Befehlszeile zum Ausführen verwenden, können Sie sehen, dass PHP einen Hinweis auf undefinierte Attribute gemeldet hat. Der $obj->teacher-Wert ist ein Nullwert, also NULL
<🎜 wird gedruckt. >[root@localhost php]# php538 interceptor.php PHP Notice: Undefined property: School::$teacher in /usr/local/sina_mobile/apache/htdocs/php/interceptor.php on line 11NULL
<?php class School { function __get($var) { echo $var; echo "\r\n"; return "hello"; } public $name = "Tom"; } $obj = new School; var_dump($obj->teacher); var_dump($obj->name);
[root@localhost php]# php538 interceptor.php teacher string(5) "hello" string(3) "Tom"
PHP-Website für Chinesisch! !
Das obige ist der detaillierte Inhalt vonWas sind die Interceptor-Methoden in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!