1. 程式人生 > >PHP魔術方法__call

PHP魔術方法__call

__call

成員方法不存在時候自動調用的魔術方法,php不支持多態,可以通過call實現偽多態。

<?
class a{
function show(){
echo 1;
}
function call($f,$args){
echo "__CALL";
}
}
$obj= new a;
$obj->k();
?>

輸出 __CALL

也就是說實例化一個對象後,當調用這個對象的成員方法存在時,則直接調用其成員方法,但是當成員方法不存在時,將轉而去調用call方法。
同時call必須有兩個參數,這個參數名可以隨意取,但是為了方便我們通常取為$name和$args

當成員方法不存在時,call將被調用,同時,這個不存在的方法名稱會作為字符串傳遞給第一個參數(這裏第一個參數是$name),將調用時傳遞的參數作為列表傳遞給第二個參數(這裏第二個參數是$args)。

PHP魔術方法__call