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
1010 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!

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