「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP でコールバックを効果的に使用するにはどうすればよいですか?

PHP でコールバックを効果的に使用するにはどうすればよいですか?

2024 年 11 月 9 日に公開
ブラウズ:304

How Can I Use Callbacks Effectively in PHP?

PHP でのコールバックの実装

PHP の「コールバック」という用語には、関数ポインターとして動作する文字列と配列の両方が含まれます。 PHP 4 では、次の構文が登場しました:

  • $cb1 = 'someGlobalFunction';
  • $cb2 = ['ClassName', 'someStaticMethod'];
  • $cb3 = [$object, 'somePublicMethod'];

PHP ですが5.2.3 では呼び出し可能な構文が導入されましたが、そのような構文を含む文字列を直接呼び出すことはできません。 PHP 4 の従来の構文には、

  • $cb3 = array(&$object, 'somePublicMethod');

次のコード スニペットは、呼び出し可能な値の安全な使用法を示しています。 :

if (is_callable($cb2)) {
    $returnValue = call_user_func($cb2, $arg1, $arg2);
}

最新の PHP バージョンでは、上記の最初の 3 つの形式を $cb() として直接呼び出すことがサポートされています。さらに、call_user_func と call_user_func_array は、提示されたすべての形式をサポートします。

注と警告:

  • 名前空間関数/クラスには完全修飾名が必要です。 ['Vendor\Package\Foo', 'method'].
  • call_user_func は、非オブジェクトの参照渡しをサポートしていません。 call_user_func_array または $cb() を使用します。以降の PHP バージョンでは、
  • __invoke() メソッドを持つオブジェクト (匿名関数を含む) はコールバックとして使用できますが、通常は従来の「コールバック」用語とは関連付けられません。
  • Legacy create_function () はグローバル関数を作成し、その名前を返します。代わりに匿名関数を使用してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3