PHP 中的匿名遞歸函數
在PHP 中,匿名函數(也稱為lambda 函數)的概念提供了一種便捷的方式來定義內聯函數無需指定正式名稱。然而,當涉及到遞歸時,匿名函數面臨著獨特的挑戰。
問題:
當嘗試建立遞歸匿名函數時,可能會出現函數名稱未正確傳遞到遞歸中。出現此問題的原因是,與具有已定義名稱的常規函數不同,匿名函數缺少對自身的參考。
解決方案:
要解決此問題,您需要透過匿名函數作為 use 語句中的引用。這可以透過在函數名稱前面加上與號(&) 來實現,如下列程式碼所示:
<code class="php">$factorial = function( $n ) use ( &$factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); // Output: 120</code>
透過傳遞匿名函數作為引用,您可以在遞歸呼叫和原始函數定義,允許它存取自己的內部狀態。這使得遞歸能夠按預期運行,並且您可以成功計算階乘值。
以上是## 如何在 PHP 中實作遞歸匿名函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!