ホームページ > バックエンド開発 > PHPチュートリアル > PHP でコールバックを効果的に使用するにはどうすればよいですか?

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

Susan Sarandon
リリース: 2024-10-27 20:34:30
オリジナル
219 人が閲覧しました

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');

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

<code class="php">if (is_callable($cb2)) {
    $returnValue = call_user_func($cb2, $arg1, $arg2);
}</code>
ログイン後にコピー

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

注と警告:

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

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート