재귀 적이며 익명 인 PHP 함수를 사용할 수 있습니까? 이것은 작동시키려는 시도이지만 기능 이름은 전달하지 않습니다.익명 재귀 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'을 사용해 보셨습니까? – kennytm
* (sidenote) * Lamba는 익명 함수이고 위의 값은 Closure입니다. – Gordon
람다와 클로저는 상호 배타적이지 않습니다. 사실 어떤 사람들은 closure가 closure (익명의 함수)가되기 위해서는 닫는 것이 람다 (lambda) 여야한다고 믿습니다. 예를 들어 파이썬의 경우에는 함수의 이름을 먼저 지정해야합니다 (버전에 따라 다름).당신이 그것을 이름을 써야하기 때문에 당신은 인라인 할 수없고 어떤 사람들은 그것을 폐쇄로부터 실격시키는 것이라고 말할 것입니다. –