コールバック関数 呼び出される関数に引数として関数を渡します。関数の形式の説明にコールバック型のパラメーターが出現する場合、その関数はコールバック関数です。 変数関数を使用して独自のコールバック関数を宣言することもできますが、最も一般的な実装は call_user_func_array() 関数を使用することです。前の章では、php コールバック関数での変数関数の宣言と適用について紹介しました。変数関数を使用してユーザー定義の実行プロセスを関数に渡すと、ユーザーが関数関数を拡張できるようになり、ユーザーが自分でセクションを定義できるようになります。関数は内部使用のために関数に渡されます。このセクションでは、call_user_func_array() 関数を例を挙げて説明します。
関数 call_user_func_array() は、PHP の組み込み関数です。実際、その形式は次のとおりです:
mixed call_user_func_array( callback function, array param_arr)
この関数には 2 つのパラメーターがあります。最初のパラメーターは次のとおりです。疑似型コールバック。したがって、このパラメータには呼び出される関数の名前を表す文字列が必要です。2 番目のパラメータは、順序に従って呼び出される関数に渡されるパラメータ リストを表す配列型パラメータです。 。関数が出力され、関数のコールバック関数として機能することを目的とした関数を宣言します。
この関数の適用例は次のとおりです。<?php
// 声明一个函数fun(),功能是输出两个字符串,目的是作为call_user_func_array()函数的回调函数
function fun($str1, $str2){
echo "$str1 = ".$str1;
echo "<br>";
echo "$str2 = ".$str2;
}
//通过系统函数call_user_func_array()调用函数fun()
call_user_func_array("fun",array("php.cn","php中文网"));
?>
上記の例では、システム関数 call_user_func_array() を通じて自己定義関数 fun() が呼び出され、 function fun() call_user_func_array() 関数の最初のパラメータは call_user_func_array() 関数に渡されます。 2 番目のパラメータには配列が必要です。 配列内の要素の数は fun( のパラメータ リストおよびツリーと同じである必要があります)。 ) 関数。この配列パラメータの各要素の値は、call_user_func_array() 関数を通じてコールバック関数 fun() パラメータ リストに順番に渡されるためです。したがって、変数関数を通じて実装されたカスタム コールバック関数を call_user_func_array() 関数に変更できます。
そのコードの例は次のとおりです:<?php
//声明回调函数filter, 在0-10的整数中通过自定义条件过滤不要的数字
function filter($fun){
for($i=0; $i<=10; $i++){
//使用系统函数call_user_func_array(),调用和变量$fun值相同的函数
if(call_user_func_array($fun,array($i)))
continue;
echo $i.'<br>';
}
}
?>
この例では、カスタム関数 filter() 内で、元の変数関数の位置が call_user_func_array() 関数の助けを借りて呼び出されるように書き換えられ、関数 filter( ) は変更されていません。
この章では、call_user_func_array() 関数とその php コールバック関数の使用法について説明します。次の章では、php コールバック関数の
class 静的関数とオブジェクト メソッド コールバックを紹介します。【おすすめ関連チュートリアル】
1.「
php.cn Dugu Jiijian (4) - PHPビデオチュートリアルPHPプログラミングの入門からマスターまでの完全なビデオチュートリアルセット PHP 実践ビデオチュートリアル以上がPHP関数のコールバック関数(2) call_user_func_array()関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。