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 :
class Foo { public function doSomething() { // do something } } $foo = new Foo(); $foo->dosomething(); // 方法名拼写错误 // 解决方法:确保方法或属性名的大小写拼写正确。
class Foo { public function doSomething() { // do something } } $foo = null; $foo->doSomething(); // 解决方法:在调用方法或访问属性之前,确保对象已经实例化并且不为null。
class Foo { public function doSomething() { // do something } } $foo = new Foo(); $foo->nonExistingMethod(); // 解决方法:确保方法或属性已经在类中被正确定义。
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!