php call_user_func_arrayの詳細な使い方

1126 ワード

主に関数名が不確定でパラメータが不確定な場合に用いられ,異なるパラメータを伝達することによって異なる方法を呼び出す思想を体現している.
1.ダイレクトコール方法
function say($word){
    echo $word;
}
call_user_func_array('say',array('Hello PHP'));
/*             ,     ,              ,    */
/*
*   say()     ,  call_user_func_array       false,
*            :say(),      
*/

2.オブジェクトの呼び出し方法
class S{
    public function __construct(){
        
    }
    public static function say1($word){
        echo $word;
    }
    public function say($word){
        echo $word;
    }
}
/*     :             */
call_user_func_array(array('S','say1'),array('Hello PHP'));

/*     :             */
call_user_func_array(array('S','say2'),array('Hello PHP'));
/*           ,         $this  ,   ,      */

/*     :             */
$s = new S();

call_user_func_array(array($s,'say2'),array('Hello PHP'));
call_user_func_array(array(&$s,'say2'),array('Hello PHP'));/*&             */
call_user_func_array(array(new S(),'say2'),array('Hello PHP'));