PHP匿名递归回调调用

时间:2020-05-24 07:54:34

标签: php recursion callback anonymous-function

我正在上以下课:

class MyClass
{
    public $groups = array(
        'callback' => '',
        'name'     => ''
    );

    public function group($callback)
    {
        $this->groups['callback'] = $callback;
        return $this;
    }

    public function name($name)
    {
        $this->groups['name'] .= $name . '/';
    }

    public function execute()
    {
        // this callback should keep calling it self till no more callbacks in 
        $this->groups['callback']($this);
    }
}

这就是我想要达到的目标。

$myclass = new MyClass;

$myclass->group(function($m){ // main group


    $m->group(function($a){ // sub group


        $a->group(function($b){  // 2nd sub group 

            echo 'sub 2'; 

        })->name('sub-2');

        echo 'sub 1';

    })->name('sub-group');


    echo 'group 1';

})->name('group-1');


$myclass->execute();

但是似乎无法递归调用子组只能执行第一个级别,即组1;

0 个答案:

没有答案
相关问题