hp組み込み関数の多くは、次のようなコールバック関数を使用します。
array_filter — コールバック関数を使用して、配列内のセルをフィルタリングします。
array_diff_ukey — コールバック関数を使用してキー名を比較し、配列の差分セットを計算します。
ここでのコールバック関数は通常の関数と何ら変わらないようですが、phpのコールバック関数とはどのようなものなのか教えてください。どういう原理で動いているのでしょうか?
コールバック関数は、自分で作成した関数ですが、自分ではなく他の人によって調整されます。
以下の odd() 関数と Even() 関数と同じです。
<?php function odd($var) { return($var % 2 == 1); } function even($var) { return($var % 2 == 0); } $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); $array2 = array(6, 7, 8, 9, 10, 11, 12); echo "Odd :\n"; print_r(array_filter($array1, "odd"));//这里把array1的值依次传入到odd这个函数里面,这种方式就称为回调 echo "Even:\n"; print_r(array_filter($array2, "even")); ?>
次の例は関数コールバックを実装します
<? function fnCallBack($msg1, $msg2) { echo 'msg1:'.$msg1; echo '<br/>'; echo 'msg2:'.$msg2; } $fnName = 'fnCallBack';//函数名 $params = array('hello', 'world');//将要传入到函数里面的参数 call_user_func_array($fnName, $params); ?>
以上がPHPのコールバック関数はどのようなものですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。