Pendant le développement de PHP, nous rencontrons souvent diverses erreurs et exceptions, l'erreur la plus courante est: "Erreur fatale: appel à une fonction membre sur un non-objet". Cette erreur se produit généralement lorsque vous essayez d'appeler une méthode sur un non-objet. Cet article introduira les causes de cette erreur, les solutions communes, et comment déboguer efficacement ce type d'erreur.
Comprenons d'abord la génération de cette erreur à travers un exemple de code simple:
classe myClass { fonction publique myMethod () { Echo "Bonjour, c'est ma méthode!"; } } $ myObject = null; $ myObject-> myMethod (); // L'erreur fatale sera déclenchée ici
Dans l'exemple ci-dessus, nous définissons une classe MyClass et une méthode MyMethod est définie dans cette classe. Ensuite, nous définissons la variable $ myObject sur NULL et essayons d'appeler sa méthode myMethod. Puisque $ myObject n'est pas un objet valide, l'erreur "Erreur fatale: appel à une fonction membre sur une erreur non objet" est déclenchée lors de l'appel de la méthode.
Pour résoudre ce problème, nous devons nous assurer que l'objet cible est correctement instancié avant d'appeler la méthode. Voici quelques solutions couramment utilisées:
if ($ myObject! = null) { $ myObject-> myMethod (); }
Avec un simple contrôle nul, nous pouvons nous assurer que l'objet a été instancié et éviter les méthodes d'appel lorsqu'elles sont nulles.
if (isset ($ myObject)) { $ myObject-> myMethod (); }
La fonction ISSET vérifie si l'objet est défini et non nul. Utilisez cette méthode pour confirmer si l'objet est valide avant d'appeler la méthode.
if (! vide ($ myObject)) { $ myObject-> myMethod (); }
La fonction vide peut vérifier si l'objet est vide. Avec cette méthode, nous pouvons également éviter de passer des appels de méthode lorsque l'objet est vide.
Outre les méthodes ci-dessus, la solution la plus simple consiste à s'assurer que l'objet est correctement instancié avant d'appeler la méthode:
$ myObject = new myClass (); $ myObject-> myMethod ();
En instanciant l'objet avant d'appeler la méthode, nous pouvons nous assurer que l'objet est un objet valide, évitant ainsi des occurrences de type erreur.
L'erreur "Erreur fatale: appel à une fonction de membre sur une erreur non objet" dans PHP est généralement causée par l'appel d'une méthode qui n'instançait pas un objet. Pour résoudre ce problème, nous pouvons porter un jugement en vérifiant si l'objet est vide, en utilisant les fonctions ISSET ou vides et en veillant à ce que l'objet soit correctement instancié avant d'appeler la méthode. De plus, lorsque des erreurs similaires sont rencontrées, il est très important de déboguer et de dépanner en temps opportun.