1. 程式人生 > >PHP 重載方法 __call()

PHP 重載方法 __call()

多個 cti 第一個 接收 cal 不存在 var on() [1]

__call() 方法用於監視錯誤的方法調用。

__call()(Method overloading)

為了避免當調用的方法不存在時產生錯誤,可以使用 __call() 方法來避免。該方法在調用的方法不存在時會自動調用,程序仍會繼續執行下去。

語法:

function __call(string $function_name, array $arguments)
{
    ......
}

該方法有兩個參數,第一個參數 $function_name 會自動接收不存在的方法名,第二個 $args 則以數組的方式接收不存在方法的多個參數。

在類裏面加入:

function __call($function_name, $args)
{
    echo "你所調用的函數:$function_name(參數:<br />";
    var_dump($args);
    echo ")不存在!";
}

當調用一個不存在的方法時(如 test() 方法):

$p1=new Person();
$p1->test(2,"test");

輸出的結果如下:

你所調用的函數:test(參數:
array(2) {
    [0]=>int(2)
    [1]=>string(4) "test"
}
)不存在!

PHP 重載方法 __call()