Вызываемый 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 учебный класс. Зачем?

0 ответов

Другие вопросы по тегам