【发布时间】:2011-01-29 15:02:01
【问题描述】:
是否可以有一个递归和匿名的 PHP 函数?这是我让它工作的尝试,但它没有传入函数名。
$factorial = function( $n ) use ( $factorial ) {
if( $n <= 1 ) return 1;
return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );
我也知道这是实现阶乘的不好方法,这只是一个示例。
【问题讨论】:
-
我没有 PHP 5.3.0 可供检查,但您是否尝试使用
global $factorial? -
(sidenote)一个Lamba是一个匿名函数,而上面是一个闭包。
-
Lambda 和闭包并不相互排斥。事实上,有些人认为闭包必须是 lambda 才能成为闭包(匿名函数)。例如 Python,您必须先为函数命名(取决于版本)。因为你必须给它一个你不能内联的名字,有些人会说它不能成为一个闭包。
-
print $factorial( 0); -
php手册example
标签: php recursion lambda closures anonymous-function