Closures and __FUNCTION__
| From: | Peter Danenberg | Date: | Sun, 12 Apr 2009 02:51:00 +0000 |
| Subject: | Closures and __FUNCTION__ | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-43665@lists.php.net to get a copy of this message | ||
The original anonymous functions patch[1] contained support for
__FUNCTION__ as a recursion mechanism in closures, such that I should
be able to do something like this:
$factorial = function($n) {
if ($n == 1)
return 1;
else
return $n * call_user_func(__FUNCTION__, $n - 1);
};
print $factorial(3); // => 6
It fails with a warning, though:
Warning: call_user_func() expects parameter 1 to be a valid
callback, function '{closure}' not found or invalid function name
Is there another recursion mechanism for closures besides something
like the $GLOBALS['factorial'] hack?
Footnotes:
[1] http://marc.info/?l=php-internals&m=119995982228453&w=2