Lorsque j'ai appelé l'attribut, aucune erreur n'a été signalée dans php5, mais une erreur a été signalée dans php7. Le code est le suivant
<?php class test { protected $view; protected function testxxx() { $this->view = xxx; } }
Une autre classe
.<?php cless xxx extends test { public function xx() { self::testxxx() } }
Le message d'erreur est le suivant :
[29-Dec-2017 23:21:45 Asia/Shanghai] PHP Fatal error: Uncaught Error: Using $this when not in object context in
La réponse a été résolue en utilisant une fonction variable quelque part. La solution est
call_user_func([new xxx, '函数名'])
De plus, tout le monde a dit que $this devrait être utilisé, au lieu de self, l'explication est la suivante :
public: self::var 调用父类方法或者属性 parent::method 调用父类方法 实例中可以通过$this->var 调用public类型的方法或属性 protected: self::var 调用父类方法或者属性 parent::method 调用父类方法 实例中不可以通过$this->var 调用public类型的方法或属性 private: 只能在该类中使用
Sur la base des points ci-dessus, il est possible d'utiliser this et self dans ce cas.
Tutoriel recommandé : "Tutoriel php"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!