首頁  >  文章  >  後端開發  >  如何在 PHP 中有效使用回呼?

如何在 PHP 中有效使用回呼?

Susan Sarandon
Susan Sarandon原創
2024-10-27 20:34:30114瀏覽

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 版本支援直接呼叫上述前三種格式作為$cb()。此外,call_user_func 和 call_user_func_array 支援所有提供的格式。

註解與警告:

    命名空間函數/類別需要完全限定的名稱,例如['VendorPackageFoo', 'method'].
  • call_user_func 不支援透過引用傳遞非物件。使用 call_user_func_array 或 $cb();在更高版本的 PHP 版本中。
  • 具有 __invoke() 方法的物件(包括匿名函數)可以用作回調,但通常與傳統的「回調」術語無關。
  • 舊版 create_function () 建立一個全域函數並傳回其名稱。請改用匿名函數。

以上是如何在 PHP 中有效使用回呼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn