从闭包内调用当前闭包

ddl*_*ack 4 php closures anonymous-function

在javascript中,你可以做这样的事情

arr.map(function(val) {
    return typeof val == 'array' ? val.map(arguments.callee) : val.doSomething();
});
Run Code Online (Sandbox Code Playgroud)

这将以递归方式迭代arr并应用于doSomething每个值.

在PHP中是否有与JavaScript的arguments.callee相同的东西?

web*_*ave 5

在PHP中是否有与JavaScript的arguments.callee相同的东西?

您必须将该功能传递给自己:

$func = function($a = 0) use (&$func) {
    echo "$a\n";
    if ($a == 1) {
        return;
    }
    $func(1);
};

$func();

/* output:
0
1
*/
Run Code Online (Sandbox Code Playgroud)