__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方法