Als ich das Attribut aufrief, wurde in PHP5 kein Fehler gemeldet, aber in PHP7 wurde ein Fehler gemeldet. Der Code lautet wie folgt:
<?php class test { protected $view; protected function testxxx() { $this->view = xxx; } }
Eine andere Klasse
<?php cless xxx extends test { public function xx() { self::testxxx() } }
Die Fehlermeldung lautet wie folgt:
[29-Dec-2017 23:21:45 Asia/Shanghai] PHP Fatal error: Uncaught Error: Using $this when not in object context in
Die Antwort wurde durch die Verwendung einer Variablenfunktion irgendwo verursacht. Die Lösung lautet
call_user_func([new xxx, '函数名'])
Außerdem. Alle sagten, dass $this anstelle von self verwendet werden sollte. Die Erklärung lautet wie folgt:
public: self::var 调用父类方法或者属性 parent::method 调用父类方法 实例中可以通过$this->var 调用public类型的方法或属性 protected: self::var 调用父类方法或者属性 parent::method 调用父类方法 实例中不可以通过$this->var 调用public类型的方法或属性 private: 只能在该类中使用
Basierend auf den oben genannten Punkten ist es in diesem Fall möglich, this und self zu verwenden.
Empfohlenes Tutorial: „PHP-Tutorial“
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem dieses Fehlers in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!