Я пишу класс с несколько примитивным способом ошибок. Он использует массив как свойство, называемое "действием", в котором он записывает последнее выполненное действие. Однако это не работает. Каждый раз, когда я пытаюсь сохранить что-то, я получаю следующие ошибки как в одной строке:
Примечание. Неопределенная переменная: действие
Неустранимая ошибка: не удается получить доступ к пустому свойству
Сверху вверх, поле определяется как:
class Foo
{
...
public $action = array();
...
Сброс после каждого действия:
private function update() {
...
unset($this->action);
$this->action = array();
}
И установите следующий формат (это делается в нескольких местах и все возвращают ту же ошибку):
$this->update();
array_push( $this->$action, "Bar");
Я также заметил, что это всегда происходит на первом этапе, поэтому я подозреваю синтаксическую ошибку, но не знаю, где именно.
Может ли кто-нибудь из вас определить проблему?
Недопустимая ссылка на переменную:
array_push( $this->$action, "Bar");
использовать:
$var->property_of_var
array_push( $this->action, "Bar");
$this->$action
->$this->action
один знак доллара слишком много.$this->$action
фактически эквивалентно$this->{""}
(т.е. "пустое свойство this"), потому что$action
не определено - вы случайно используете свойство переменной.