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

更新於: 2020-09-19

685 次瀏覽

啟動你的 職業生涯

完成課程以獲得認證

開始學習
廣告