__call 当要调用的方法不存在或权限不足时,会自动调用__call 方法。
__callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。
__call($funcname, $arguments)
__callStatic($funcname, $arguments)
参数说明:
$funcname String 调用的方法名称。
$arguments Array 调用方法时所带的参数。
class Test{
public function __call($fun,$arg)
{
echo "当调用的方法不存在或者没有权限时, 就开始调用__call了<br/>";
echo "方法名: $fun<br/>";
var_dump($arg);
}
public static function __callStatic($fun,$arg)
{
echo "当调用的静态方法不存在或者没有权限时, 就开始调用__callStatic了<br/>";
echo "调用方法名: $fun<br/>";
var_dump($arg);
}
}
$test = new Test();
$test -> sing('庄子',18); //Test类中没有 sing方法 , 自动调用 __call方法
Test::zhuangzi('carl','男'); //Test类中没有 zhuangzi 静态方法 自动调用 __callStatic方法
