Maison > développement back-end > Problème PHP > Résoudre le problème de cette erreur en php

Résoudre le problème de cette erreur en php

hzc
Libérer: 2023-03-01 12:22:02
original
3047 Les gens l'ont consulté

Résoudre le problème de cette erreur en php

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; } }
Copier après la connexion

Une autre classe

.
<?php cless xxx extends test { public function xx() { self::testxxx() } }
Copier après la connexion

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
Copier après la connexion

La réponse a été résolue en utilisant une fonction variable quelque part. La solution est

call_user_func([new xxx, &#39;函数名&#39;])
Copier après la connexion

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: 只能在该类中使用
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal