__call 當(dāng)要調(diào)用的方法不存在或權(quán)限不足時(shí),會(huì)自動(dòng)調(diào)用__call 方法。
__callStatic 當(dāng)調(diào)用的靜態(tài)方法不存在或權(quán)限不足時(shí),會(huì)自動(dòng)調(diào)用__callStatic方法。
__call($funcname, $arguments)
__callStatic($funcname, $arguments)
參數(shù)說(shuō)明:
$funcname String 調(diào)用的方法名稱。
$arguments Array 調(diào)用方法時(shí)所帶的參數(shù)。
class Test{
public function __call($fun,$arg)
{
echo "當(dāng)調(diào)用的方法不存在或者沒(méi)有權(quán)限時(shí), 就開(kāi)始調(diào)用__call了<br/>";
echo "方法名: $fun<br/>";
var_dump($arg);
}
public static function __callStatic($fun,$arg)
{
echo "當(dāng)調(diào)用的靜態(tài)方法不存在或者沒(méi)有權(quán)限時(shí), 就開(kāi)始調(diào)用__callStatic了<br/>";
echo "調(diào)用方法名: $fun<br/>";
var_dump($arg);
}
}
$test = new Test();
$test -> sing('莊子',18); //Test類中沒(méi)有 sing方法 , 自動(dòng)調(diào)用 __call方法
Test::zhuangzi('carl','男'); //Test類中沒(méi)有 zhuangzi 靜態(tài)方法 自動(dòng)調(diào)用 __callStatic方法
