我正在上以下课:
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;