當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP 匿名遞歸函數用法及代碼示例


匿名遞歸函數是一種遞歸函數類型,其中函數不是通過名稱顯式調用另一個函數。這可以通過使用高階函數傳入函數作為參數,並調用該函數來完成。這也可以通過反射函數來隱式完成此操作,反射允許根據當前上下文(尤其是當前函數)訪問某些函數。
在計算機科學理論中,匿名遞歸意義重大,因為匿名遞歸是一種遞歸類型,在這種類型中,人們可以實現遞歸而無需命名函數。

使用匿名遞歸:

  • 匿名遞歸主要用於允許匿名函數遞歸。
  • 特別是當它們形成閉包或用作回調時,避免綁定函數名稱。

備擇方案:


  • 使用命名遞歸和命名函數。
  • 如果給出了匿名函數,則可以通過將名稱綁定到函數來完成匿名遞歸,如命名函數一樣。

示例1:

<?php  
// PHP program to illustrate the  
// Anonymous recursive function  
  
$func = function ($limit = NULL) use (&$func) {  
    static $current = 10;  
      
    // if condition to check value of $current. 
    if ($current <= 0) {  
        //break the recursion  
        return FALSE; 
    }  
      
    // Print value of $current. 
    echo "$current\n";  
      
    $current--;  
      
    $func();  
};  
  
//  Function call 
$func(); 
?>
輸出:
10
9
8
7
6
5
4
3
2
1

示例2:

<?php 
// PHP program to illustrate the  
// Anonymous recursive function  
  
$factorial = function( $num ) use ( &$factorial ) { 
      
    // Base condition of recursion 
    if( $num == 1 )  
        return 1; 
  
    // return statement when $m is not equals to 1. 
    return $factorial( $num - 1 ) * $num; 
}; 
  
// Function call 
print $factorial( 6 ); 
?>
輸出:
720


相關用法


注:本文由純淨天空篩選整理自Amaninder.Singh大神的英文原創作品 Anonymous recursive function in PHP。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。