Неопределенная переменная + Невозможно получить доступ к пустому свойству

0

Я пишу класс с несколько примитивным способом ошибок. Он использует массив как свойство, называемое "действием", в котором он записывает последнее выполненное действие. Однако это не работает. Каждый раз, когда я пытаюсь сохранить что-то, я получаю следующие ошибки как в одной строке:

  1. Примечание. Неопределенная переменная: действие

  2. Неустранимая ошибка: не удается получить доступ к пустому свойству

Сверху вверх, поле определяется как:

class Foo
{
    ...

    public $action = array();

    ...

Сброс после каждого действия:

private function update() {

    ...

    unset($this->action);
    $this->action = array();
}

И установите следующий формат (это делается в нескольких местах и все возвращают ту же ошибку):

$this->update();
array_push( $this->$action, "Bar");

Я также заметил, что это всегда происходит на первом этапе, поэтому я подозреваю синтаксическую ошибку, но не знаю, где именно.

Может ли кто-нибудь из вас определить проблему?

  • 4
    $this->$action -> $this->action один знак доллара слишком много.
  • 0
    $this->$action фактически эквивалентно $this->{""} (т.е. "пустое свойство this"), потому что $action не определено - вы случайно используете свойство переменной.
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Недопустимая ссылка на переменную:

array_push( $this->$action, "Bar"); 

использовать:

$var->property_of_var
array_push( $this->action, "Bar"); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню