Анонимная рекурсивная функция в PHP

Опубликовано: 4 Февраля, 2022

Анонимная рекурсивная функция - это тип рекурсии, при котором функция не вызывает явно другую функцию по имени. Это можно сделать либо комплексно, используя функцию более высокого порядка, передав функцию в качестве аргумента и вызывая эту функцию. Это может быть сделано неявно, с помощью функций отражения, которые позволяют получить доступ к определенным функциям в зависимости от текущего контекста, особенно текущей функции.
В теории информатики анонимная рекурсия имеет большое значение, поскольку анонимная рекурсия - это тип рекурсии, в котором можно реализовать рекурсию, не требуя именованных функций.

Использование анонимной рекурсии:

  • Анонимная рекурсия в первую очередь используется для разрешения рекурсии для анонимных функций.
  • В частности, когда они образуют замыкания или используются в качестве обратных вызовов, чтобы избежать привязки имени функции.

Альтернативы:

  • Использование именованной рекурсии и именованных функций.
  • Если задана анонимная функция, анонимная рекурсия может быть выполнена либо путем привязки имени к функции, как в именованных функциях.

Program 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 "
      
    $current--; 
      
    $func(); 
}; 
  
//  Function call
$func();
?>
Output:
10
9
8
7
6
5
4
3
2
1

Program 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 );
?>
Output:
720