## PHP 函數可以同時是遞迴函數和匿名函數嗎?

Susan Sarandon
發布: 2024-10-26 02:08:28
原創
325 人瀏覽過

## Can PHP Functions Be Both Recursive and Anonymous?

在PHP 中實現匿名遞歸函數

開始在PHP 中編寫遞歸函數的任務時,人們可能會渴望用匿名來掩蓋它們。然而,當嘗試將函數名稱作為參數傳遞給自身時,就會出現一個陷阱,如下面的程式碼所示。

<code class="php">$factorial = function( $n ) use ( $factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>
登入後複製

這種努力將被證明是徒勞的,給您留下一個揮之不去的問題:PHP 可以嗎?函數既可以遞歸又可以匿名?

答案在於理解變數引用的機制。要建立遞歸連接,函數必須保存對其自身的參考。這可以透過使用“&”運算子將函數作為參考傳遞來實現。以下是此修改如何解鎖匿名遞歸的範例:

<code class="php">$factorial = function( $n ) use ( &$factorial ) {
    if( $n == 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>
登入後複製

透過此調整,PHP 函數超越了匿名的界限,無縫地運用了其遞歸功能。

以上是## PHP 函數可以同時是遞迴函數和匿名函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!