您好,匿名用户
随意问技术百科期待您的加入

php的匿名函数中如何递归自己

0 投票

php 5.2以后增加了匿名函数这个功能,但我在匿名函数递归时发现了问题

<?php

$test = NULL;
$test = function ($a) use ($test) {
    echo $a;
    $a --;

    if ($a > 0) {
        return $test($a);
    }
};

$test(10);

正如上面的代码所示,我想在$test这个匿名函数里递归调用它自己,但是我发现在调用后会出现

Fatal error: Function name must be a string in /Library/WebServer/Documents/test.php on line 9

也就是$test这个变量并不能被识别,大家有办法能在匿名函数中递归函数本身吗?

用户头像 提问 2012年 12月1日 @ Scorpio 上等兵 (220 威望)
分享到:

1个回答

0 投票
 
最佳答案

In order for it to work, you need to pass $test as a reference

$test = function ($a) use (&$test) {
    ...
}

Reference: http://stackoverflow.com/questions/24...

tips: google helps.

用户头像 回复 2012年 12月1日 @ Nasus 上等兵 (329 威望)
选中 2012年 12月1日 @Scorpio
提一个问题:

相关问题

0 投票
1 回复 36 阅读
用户头像 提问 2012年 12月1日 @ Graves 上等兵 (254 威望)
0 投票
1 回复 29 阅读
用户头像 提问 2012年 12月1日 @ Diana 上等兵 (326 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2013年 11月27日 @ Garen 上等兵 (269 威望)
0 投票
1 回复 43 阅读
0 投票
1 回复 28 阅读
用户头像 提问 2013年 11月22日 @ Nasus 上等兵 (329 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...