php类中__开头的方法为魔术方法。
__call方法有两个参数:$name,$args
,分别表示方法的名称, 以及参数。
当调用了一个类中不存在的方法时,就会自动触发 __call 方法。
实例:
<?php
class Animal{
public $name = "";
public function __construct($name){
$this->name = $name;
}
public function eat(){
}
public function sleep(){
}
//魔术方法
public function __call($name,$args){
echo "自动执行了Animal类中的__call方法<br/>";
}
}
$monkey = new Animal("猴子");
//调用不存在的方法
$monkey->test();
?>
运行结果:
自动执行了Animal类中的__call方法
类似地,如果调用了类中不存在的静态方法,则触发 __callStatic($name,$args)。
本篇完,还有疑问?留下评论吧