属性を呼び出したところ、php5 ではエラーが報告されませんでしたが、php7 ではエラーが報告されました。コードは次のとおりです。
<?php class test { protected $view; protected function testxxx() { $this->view = xxx; } }
Another class
<?php cless xxx extends test { public function xx() { self::testxxx() } }
エラー メッセージは次のとおりです:
[29-Dec-2017 23:21:45 Asia/Shanghai] PHP Fatal error: Uncaught Error: Using $this when not in object context in
答えは解決されました。どこかで変数関数を使用したことが原因でした。解決策は
call_user_func([new xxx, '函数名'])
さらに、誰もが self の代わりに $this を使用するべきだと言いました。その説明は次のとおりです:
public: self::var 调用父类方法或者属性 parent::method 调用父类方法 实例中可以通过$this->var 调用public类型的方法或属性 protected: self::var 调用父类方法或者属性 parent::method 调用父类方法 实例中不可以通过$this->var 调用public类型的方法或属性 private: 只能在该类中使用
上記の点に基づいて、このインスタンスでは this と self を使用しても問題ありません。
推奨チュートリアル:「php チュートリアル」
以上がphpでこのエラーの問題を解決してくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。