PHP回撥/可呼叫項
定義和用法
回撥是PHP中的偽型別。在PHP 5.4中,引入了可呼叫型別提示,它類似於回撥。當某個物件被識別為可呼叫時,這意味著它可以被用作可以呼叫的函式。可呼叫項可以是內建或使用者定義的函式,或任何類中的方法。
is_callable() 函式可用於驗證識別符號是否可呼叫。PHP具有call_user_function(),它接受一個函式名作為引數。
以下示例顯示了一個內建函式是可呼叫的。
示例
<?php var_dump (is_callable("abs")); ?>
輸出
這將得到以下結果−
bool(true)
在以下示例中,將測試使用者定義的函式是否可呼叫。
示例
<?php function myfunction(){ echo "Hello World"; } echo is_callable("myfunction") . "
"; call_user_func("myfunction") ?>
輸出
這將得到以下結果−
1 Hello World
要將物件方法作為可呼叫項傳遞,物件本身及其方法作為陣列中的兩個元素傳遞
示例
<?php class myclass{ function mymethod(){ echo "This is a callable" . "
"; } } $obj=new myclass(); call_user_func(array($obj, "mymethod")); //array passed in literal form call_user_func([$obj, "mymethod"]); ?>
輸出
這將得到以下結果−
This is a callable This is a callable
類中的靜態方法也可以作為可呼叫項傳遞。除了物件,陣列引數中第一個元素應該是類的名稱
示例
<?php class myclass{ static function mymethod(){ echo "This is a callable" . "
"; } } $obj=new myclass(); call_user_func(array("myclass", "mymethod")); //using scope resolution operator call_user_func("myclass::mymethod"); ?>
輸出
這將得到以下結果−
This is a callable This is a callable
廣告