首頁  >  文章  >  後端開發  >  ## 如何在 PHP 中實作遞歸匿名函數?

## 如何在 PHP 中實作遞歸匿名函數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-25 07:54:29283瀏覽

## How Can You Implement Recursive Anonymous Functions in PHP?

PHP 中的匿名遞歸函數

在PHP 中,匿名函數(也稱為lambda 函數)的概念提供了一種便捷的方式來定義內聯函數無需指定正式名稱。然而,當涉及到遞歸時,匿名函數面臨著獨特的挑戰。

問題:

當嘗試建立遞歸匿名函數時,可能會出現函數名稱未正確傳遞到遞歸中。出現此問題的原因是,與具有已定義名稱的常規函數不同,匿名函數缺少對自身的參考。

解決方案:

要解決此問題,您需要透過匿名函數作為 use 語句中的引用。這可以透過在函數名稱前面加上與號(&) 來實現,如下列程式碼所示:

<code class="php">$factorial = function( $n ) use ( &amp;$factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};

print $factorial( 5 ); // Output: 120</code>

透過傳遞匿名函數作為引用,您可以在遞歸呼叫和原始函數定義,允許它存取自己的內部狀態。這使得遞歸能夠按預期運行,並且您可以成功計算階乘值。

以上是## 如何在 PHP 中實作遞歸匿名函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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