PHP中call user func()和call_user_func_array()調用自定義函數小結


call_user_func() 和 call_user_func_array(),通過傳入字符串函數,可以調用自定義函數,並且支持引用,都允許用戶調用自定義函數並傳入一定的參數:

1、mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

  第一個參數為自定義函數名稱,后面的參數為函數的參數,返回值為自定義函數的結果。

function say($word)
{
 echo $word;
}
call_user_func('say', 'hello world'); 
//輸出
//hello world

  當然也可以調用類中的方法:

class World {
 function sayHello($word = '')
 {
  echo $word;
 }
} 
 //注意,必須是要實例化的,除非是static
$world = new World();
call_user_func([$world, 'sayHello'], 'hello world'); 
//輸出 hello world

注意:上面寫數組的方式[ ],如果PHP版本在PHP5.4以下的,還是用array()

2、mixed call_user_func_array ( callable $callback , array $param_arr )

跟call user func()在功能上其實是一樣的,只是傳入參數上稍有區別,這個其實從方法的命名上就可以看的出來:

function say($word)
{
 echo $word;
}
call_user_func_array('say', ['hello world']); //注意:第二個參數是數組的形式
//輸出
//hello world
class World {
 function sayHello($word = '')
 {
  echo $word;
 }
} 
 //注意,必須是要實例化的,除非是static
$world = new World();
call_user_func_array([$world, 'sayHello'], ['hello world']); //注意:第二個參數是數組形式
//輸出 hello world


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM