Анонимная рекурсивная функция в 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 callprint $factorial( 6 );?> |
Output:
720