call_user_func関数とcall_user_func_Array関数(PHP)

2474 ワード

call_user_func関数とcall_user_func_Array関数(PHP)#
最近ボゴの手にphpのフレームワークを書きました.call_user_funcという関数はマニュアルを調べてもよく分からないので、ネットで検索して、参考記事を見つけてやっと疑問を解きました:今日偶然CodeIgniterの公式ドキュメントでphpのcallを再び見ました_user_func_array()という関数は、昨年もdiscuzフォーラムのコードで遭遇したことがありますが、当時は何が起こっているのか分からず、ネット上で相応の説明が見つからなかったので、この関数が何の役に立つのかずっと分かりませんでした.ほほほ~~幸いなことに、今日ネットでこの関数の使い方を検索しました(PS:phpマニュアルにこの関数についての紹介がありますが、紹介を見ても分からないし、私の理解力がだめなのかドキュメントの説明があいまいなのか分からないので、自分で見てください.http://cn2.php.net/call_user_func_array)では、このcallを皆さんと共有してみましょう.user_func_arrayとcall_user_func関数の使い方、さらにfunc_を添付get_args()関数とfunc_num_args()関数、へへへ!!
call_user_func関数は、動的呼び出し関数が必要な場合に使用されます.この関数には2つの使い方があります.1つ目は、孤独な関数を呼び出すことです.

2つ目は、クラス内の関数を呼び出すことです.
";
        var_dump($args);
        var_dump($num); 
    }
}
call_user_func(array(new a(), "b"),"111","222","OSONG");

注意:array()の最初のパラメータはインスタンス化されたものです
上の例では、自分で実行して結果が何なのか見てみましょうへへfunc_get_args()関数は、関数に入力されたパラメータを取得し、配列を返します.func_num_args()関数は、入力関数のパラメータの個数を取得します.
次にcall_を見てみましょうuser_func_array関数この関数も動的呼び出し関数が必要な場合に使用されます.その使い方とcall_user_func関数は似ていますが、パラメータが入ってくるのは配列だけです.

call_user_func_array関数はクラス内部のメソッドを呼び出すこともできます.

次に、動的呼び出し関数の例を見てみましょう.ネット上から探しました.
function otest1 ($a)
{
     echo( '    ' );
}
 
function otest2 ( $a, $b)
{
    echo( '    ' );
}
 
function otest3 ( $a ,$b,$c)
{
    echo( '   ' );
}
 
function otest (){
    $args = func_get_args();
    $num = func_num_args();
    call_user_func_array( 'otest'.$num, $args  );
}
otest("11");
otest("11","22");
otest("11","22","33");

ほほほ~上のこの例、やはりあなた达は自分で运転して、そのような印象は更に深いです