ホームページ  >  記事  >  バックエンド開発  >  PHPのコールバック関数はどのようなものですか?

PHPのコールバック関数はどのようなものですか?

怪我咯
怪我咯オリジナル
2017-06-19 11:27:351937ブラウズ

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 &#39;msg1:&#39;.$msg1;
      echo &#39;<br/>&#39;;
      echo &#39;msg2:&#39;.$msg2;
   }
   $fnName = &#39;fnCallBack&#39;;//函数名
   $params = array(&#39;hello&#39;, &#39;world&#39;);//将要传入到函数里面的参数
   call_user_func_array($fnName, $params);
?>

以上がPHPのコールバック関数はどのようなものですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。