Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens le message « Erreur fatale : utilisation de $this lorsque ce n'est pas dans le contexte d'un objet » en PHP ?

Pourquoi est-ce que j'obtiens le message « Erreur fatale : utilisation de $this lorsque ce n'est pas dans le contexte d'un objet » en PHP ?

Barbara Streisand
Libérer: 2024-12-25 11:02:41
original
198 Les gens l'ont consulté

Why Am I Getting the

Utilisation de $this dans les classes PHP

L'erreur PHP "Erreur fatale : utilisation de $this sans contexte d'objet" se produit lors de la tentative de accéder au mot-clé $this en dehors d'une méthode de classe qui nécessite un objet instance.

Explication

En PHP, le mot-clé $this fait référence à l'instance d'objet actuelle dans une méthode de classe. Tenter d'utiliser $this en dehors d'un contexte d'objet, comme dans une méthode statique ou une portée globale, entraînera l'erreur susmentionnée.

Exemple

Le code fourni montre comment l'erreur peut se produire. Dans class.php, la méthode foobarfunc() tente par erreur d'accéder à $this->foo(), qui n'est valide que dans une instance d'objet.

Solution

Pour résoudre l'erreur, vous pouvez soit :

  • Créer la méthode en tant que méthode statique method:

    static public function foobarfunc() {
      return self::$foo;
    }
    Copier après la connexion

    Cela vous permet d'accéder à la méthode en utilisant le nom de la classe au lieu d'une instance d'objet, par exemple foobar::foobarfunc().

  • Créer une instance d'objet et appelez la méthode foobarfunc() sur celle-ci instance :

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

N'oubliez pas que les méthodes statiques peuvent accéder directement aux variables et aux méthodes de classe sans avoir besoin d'une instance d'objet, tandis que les méthodes non statiques nécessitent d'abord la création d'une instance d'objet spécifique. .

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