Hi Peter, If I recall correctly, you can use the 'use' keyword.
$factorial = function($foo) use ($factorial) { $factorial($foo); } $factorial('Hello World!'); I'm still having issues compiling 5.3 on my system, so I haven't tested this. Thanks, Justin Martin Peter Danenberg wrote: > 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 > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php