Вызываемый PHP возвращает новый экземпляр при каждом вызове
Есть класс Form
и метод:
/**
* Add tabs to form
*
* @param callable $tab
* @return $this
*/
public function tab(callable $tab)
{
$section = new Tab();
call_user_func($tab, $section);
$this->tabs[] = $section;
return $this;
}
И когда я называю это так:
$form->url('store')->method('post')->tab(function (Tab $tab) {
$tab->title('test')->fields(function(FormField $field) {
$field->input('text', 'test_input');
});
$tab->title('second test')->fields(function(FormField $field) {
$field->input('text', 'test_input2');
});
});
Я ожидаю, что новые экземпляры Tab
класс будет добавлен к $tabs
собственностью Form
класс, когда я добавил новую вкладку $tab->title('second test')->fields(function(FormField $field) {
$field->input('text', 'test_input2');
});
, Но php добавляет последний экземпляр Tab
учебный класс. Зачем?