Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens une erreur fatale PHP « Utiliser $this sans contexte d'objet » ?

Pourquoi est-ce que j'obtiens une erreur fatale PHP « Utiliser $this sans contexte d'objet » ?

Barbara Streisand
Libérer: 2024-12-29 04:34:09
original
970 Les gens l'ont consulté

Why Am I Getting a

Erreur fatale PHP : utilisation de $this lorsqu'il n'est pas dans le contexte de l'objet

Problème :

Lorsque vous tentez d'accéder à la variable $this dans une méthode non statique d'une classe en PHP, l'erreur suivante se produit : "Utiliser $this lorsqu'il n'est pas dans l'objet contexte."

Réponse :

Cette erreur se produit lors de la tentative d'accès à la variable $this en dehors d'une instance d'objet. La variable $this fait référence à l'objet courant et ne peut être utilisée que dans le contexte d'un objet instancié.

Solution :

Pour résoudre cette erreur, instanciez un objet de la classe et accédez à la méthode via l’instance d’objet. Par exemple :

$object = new MyClass();
$object->myMethod();
Copier après la connexion

Alternativement, si la méthode est statique, vous pouvez y accéder directement en utilisant le nom de la classe, sans instancier d'objet :

MyClass::staticMethod();
Copier après la connexion

Exemple :

Dans votre fichier class.php, assurez-vous que la méthode foobarfunc() n'est pas définie comme méthode statique. S'il n'est pas statique, vous devez instancier un objet de la classe foobar avant d'accéder à la méthode :

$foobar = new foobar();
$foobar->foobarfunc();
Copier après la connexion

Si vous aviez l'intention de créer une méthode statique, assurez-vous que la méthode est déclarée comme statique et que le $ la variable foo est déclarée comme statique :

class foobar {

    public static $foo;

    public static function foobarfunc() {
        return self::$foo;
    }

}

foobar::foobarfunc();
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal