Les méthodes d'interception PHP incluent : 1. La méthode "__get", 2. La méthode "__set()" ; 3. La méthode "__isset()" ; 4. La méthode "__unset($property)" ; __call()".
Quelles méthodes d'interception php fournit-il
序号 | 方法名 | 作用 | 实现版本 |
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 |
Pour plus de détails, voir http://php. net /manual/zh/langue.oop5.magic.php Introduction
Qu'est-ce qu'un intercepteur PHP ?
Nom anglais "interceptor", sa fonction est d'intercepter les messages envoyant des méthodes et attributs non définis.
Regardons d'abord un morceau de code. Une classe School est définie, un objet $obj est instancié et un attribut professeur non défini est obtenu.
<?php class School { } $obj = new School; var_dump($obj->teacher);
Si vous utilisez la ligne de commande php pour l'exécuter, vous pouvez voir que php a signalé un avis d'attributs non définis. La valeur $obj->teacher est une valeur nulle, donc NULL
. <🎜 est imprimé. >[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"
Site Web PHP chinois ! !
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!