Maison >développement back-end >tutoriel php >Erreur fatale PHP : appel à une fonction membre sur booléen dans le fichier.php à la ligne X

Erreur fatale PHP : appel à une fonction membre sur booléen dans le fichier.php à la ligne X

王林
王林original
2023-08-20 23:59:531670parcourir

解决PHP Fatal error: Call to a member function on boolean in file.php on line X

Solution à l'erreur fatale PHP : Appel à une fonction membre sur booléen dans fichier.php en ligne "fichier.php en ligne X" message d'erreur. Cette erreur se produit généralement lorsque nous essayons d'appeler une méthode ou d'accéder à une propriété, mais en fait l'objet n'existe pas ou est une valeur booléenne. Cet article décrit certaines causes possibles de cette erreur et propose des solutions.

Tout d'abord, jetons un coup d'œil à l'exemple suivant :

class Foo {
    public function doSomething() {
        // do something
    }
}

$foo = false;
$foo->doSomething();

Le code ci-dessus entraînera une erreur similaire à "PHP Fatal error: Call to a member function doSomething() on boolean". La raison de l'erreur est que la variable $foo se voit attribuer une valeur booléenne, pas un objet.

La façon de corriger cette erreur est de nous assurer de vérifier si l'objet existe avant d'appeler une méthode ou d'accéder à une propriété. Voici l'exemple de code pour résoudre le problème ci-dessus :

class Foo {
    public function doSomething() {
        // do something
    }
}

$foo = false;

if ($foo instanceof Foo) {
    $foo->doSomething();
}

Dans le code ci-dessus, nous avons utilisé la méthode

.

instanceof操作符来检查$foo是否为Foo类的实例。只有在$foo是一个对象时,才会调用doSomething()En plus de la situation ci-dessus dans l'exemple de code, il peut y avoir d'autres causes de l'erreur « Erreur fatale PHP : appel à une fonction membre sur un booléen », telles que :

    Erreurs d'orthographe de nom de méthode ou d'attribut :
  1. class Foo {
     public function doSomething() {
         // do something
     }
    }
    
    $foo = new Foo();
    $foo->dosomething(); // 方法名拼写错误
    
    // 解决方法:确保方法或属性名的大小写拼写正确。

  2. L'objet n'existe pas ou est nul :
  3. class Foo {
     public function doSomething() {
         // do something
     }
    }
    
    $foo = null;
    $foo->doSomething();
    
    // 解决方法:在调用方法或访问属性之前,确保对象已经实例化并且不为null。

  4. La méthode ou la propriété n'est pas correctement définie :
  5. class Foo {
     public function doSomething() {
         // do something
     }
    }
    
    $foo = new Foo();
    $foo->nonExistingMethod();
    
    // 解决方法:确保方法或属性已经在类中被正确定义。

  6. Pour résumer, résolvez « Erreur fatale PHP : Appel à une fonction membre sur booléen dans file.php sur la ligne X "La mauvaise approche consiste à vérifier que l'objet dans votre code existe, que le nom de la méthode ou de la propriété est correctement orthographié et que la méthode ou la propriété est correctement définie. Dans le même temps, vérifiez toujours le type de la variable pour vous assurer qu'elle est un objet valide avant d'appeler des méthodes ou d'accéder aux propriétés.

En analysant minutieusement les causes des erreurs et en adoptant les solutions correspondantes, nous pouvons éviter l'apparition de telles erreurs, améliorant ainsi la stabilité et la fiabilité des applications 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!

Déclaration:
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

Articles Liés

Voir plus