Maison développement back-end tutoriel php Résolution de l'erreur PHP : tentative d'appel d'une méthode non-objet

Résolution de l'erreur PHP : tentative d'appel d'une méthode non-objet

Aug 25, 2023 pm 06:16 PM
解决方法 php报错 Appel à une erreur non-objet

Résolution de lerreur PHP : tentative dappel dune méthode non-objet

Solution à l'erreur PHP : tentative d'appel d'une méthode non-objet

Pendant le processus de développement utilisant PHP, nous rencontrons souvent des messages d'erreur, dont l'un est "essayer d'appeler une méthode non-objet". Cette erreur signifie que lorsque l’on tente d’appeler une méthode, l’objet utilisé n’est pas un objet légal. Cet article présentera quelques causes courantes et solutions pour vous aider à résoudre ce problème.

  1. Vérifiez si l'objet est correctement initialisé

Une raison courante est que nous n'avons pas initialisé correctement l'objet avant d'appeler la méthode. Par exemple, après avoir instancié une classe, on oublie d'utiliser le mot-clé « new » pour créer une instance de l'objet. Par conséquent, lors de l’appel de la méthode de l’objet, une erreur sera signalée.

Voici un exemple de code :

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = Example;  // 错误的初始化方式,忘记了关键字“new”
$example->test();    // 报错:尝试调用非对象的方法
Copier après la connexion

Résoudre ce problème nécessite simplement d'ajouter le mot-clé "new" lors de l'instanciation de l'objet. Le code réparé est le suivant :

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = new Example;  // 正确的初始化方式
$example->test();        // 正常输出:调用成功!
Copier après la connexion
  1. Vérifiez si l'objet est nul

Une autre raison courante est que nous n'effectuons pas de traitement nul sur l'objet avant d'appeler la méthode. Si nous essayons d'appeler une méthode sur un objet nul, une erreur sera signalée.

Voici un exemple de code :

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = null;
$example->test();  // 报错:尝试调用非对象的方法
Copier après la connexion

Pour résoudre ce problème, il vous suffit d'ajouter une condition nulle avant d'appeler la méthode. Le code fixe ressemble à ceci :

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = null;
if($example != null){
    $example->test();    // 不会报错,因为已经进行了判空处理
}
Copier après la connexion
  1. Vérifiez si l'objet est du bon type

Une autre situation est que lorsque nous essayons d'appeler une méthode, l'objet utilisé n'est pas du type attendu. Dans ce cas, nous utilisons généralement la vérification de type pour éviter cette erreur.

Voici un exemple de code :

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$str = "Hello World";
$str->test();  // 报错:尝试调用非对象的方法
Copier après la connexion

Dans cet exemple, nous voulons en fait appeler la méthode de l'objet, mais nous utilisons une chaîne à la place. Pour résoudre ce problème, nous pouvons utiliser la vérification de type pour garantir que l’objet que nous utilisons est du type correct.

Pour résoudre ce problème, utilisez simplement la fonction is_object() pour effectuer une vérification de type. Le code réparé est le suivant :

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$str = "Hello World";
if(is_object($str)){
    $str->test();    // 不会报错,因为已经进行了类型检查
}
Copier après la connexion

Résumé :

Lors du processus de développement PHP, lorsque nous rencontrons l'erreur "tentative d'appeler une méthode non-objet", nous pouvons d'abord vérifier si l'objet est correctement initialisé, s'il est null et est du type correct. L'adoption de solutions correspondantes en fonction de la situation spécifique peut résoudre efficacement ce problème. J'espère que cet article pourra vous aider à résoudre les problèmes courants liés aux rapports d'erreurs PHP et à améliorer l'efficacité du développement.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Apr 05, 2025 pm 10:18 PM

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Pendant la programmation, les marges négatives dans CSS (négatif ...

Comment sélectionner un élément enfant avec l'élément de nom de première classe via CSS? Comment sélectionner un élément enfant avec l'élément de nom de première classe via CSS? Apr 05, 2025 pm 11:24 PM

Lorsque le nombre d'éléments n'est pas fixé, comment sélectionner le premier élément enfant du nom de classe spécifié via CSS. Lors du traitement de la structure HTML, vous rencontrez souvent différents éléments ...

Quelle est la raison pour laquelle PS continue de montrer le chargement? Quelle est la raison pour laquelle PS continue de montrer le chargement? Apr 06, 2025 pm 06:39 PM

Les problèmes de «chargement» PS sont causés par des problèmes d'accès aux ressources ou de traitement: la vitesse de lecture du disque dur est lente ou mauvaise: utilisez Crystaldiskinfo pour vérifier la santé du disque dur et remplacer le disque dur problématique. Mémoire insuffisante: améliorez la mémoire pour répondre aux besoins de PS pour les images à haute résolution et le traitement complexe de couche. Les pilotes de la carte graphique sont obsolètes ou corrompues: mettez à jour les pilotes pour optimiser la communication entre le PS et la carte graphique. Les chemins de fichier sont trop longs ou les noms de fichiers ont des caractères spéciaux: utilisez des chemins courts et évitez les caractères spéciaux. Problème du PS: réinstaller ou réparer le programme d'installation PS.

Pourquoi un élément div spécifique dans le navigateur Edge ne s'affiche-t-il pas? Comment résoudre ce problème? Pourquoi un élément div spécifique dans le navigateur Edge ne s'affiche-t-il pas? Comment résoudre ce problème? Apr 05, 2025 pm 08:21 PM

Comment résoudre le problème d'affichage causé par les feuilles de style d'agent utilisateur? Lorsque vous utilisez le navigateur Edge, un élément DIV du projet ne peut pas être affiché. Après avoir vérifié, j'ai posté ...

Comment résoudre le problème du chargement lorsque PS est démarré? Comment résoudre le problème du chargement lorsque PS est démarré? Apr 06, 2025 pm 06:36 PM

Un PS est coincé sur le "chargement" lors du démarrage peut être causé par diverses raisons: désactiver les plugins corrompus ou conflictuels. Supprimer ou renommer un fichier de configuration corrompu. Fermez des programmes inutiles ou améliorez la mémoire pour éviter une mémoire insuffisante. Passez à un entraînement à semi-conducteurs pour accélérer la lecture du disque dur. Réinstaller PS pour réparer les fichiers système corrompus ou les problèmes de package d'installation. Afficher les informations d'erreur pendant le processus de démarrage de l'analyse du journal d'erreur.

Du brouillon de conception d'interface utilisateur à la mise en œuvre frontale: comment commencer à écrire du code et gérer les détails du graphique Echarts? Du brouillon de conception d'interface utilisateur à la mise en œuvre frontale: comment commencer à écrire du code et gérer les détails du graphique Echarts? Apr 05, 2025 pm 07:51 PM

Du brouillon de conception d'interface utilisateur à l'implémentation frontale: comment commencer à écrire du code? Lorsque vous obtenez le projet de conception Blue Lake fourni par le concepteur d'interface utilisateur, les développeurs frontaux doivent ...

Pourquoi deux éléments de blocage en ligne montrent-ils un désalignement? Comment résoudre ce problème? Pourquoi deux éléments de blocage en ligne montrent-ils un désalignement? Comment résoudre ce problème? Apr 05, 2025 pm 08:09 PM

Discuter des raisons du désalignement de deux éléments de blocage en ligne. Dans le développement frontal, nous rencontrons souvent des problèmes de composition des éléments, en particulier lorsque nous utilisons le bloc en ligne ...

Comment utiliser des fichiers de police installés localement sur les pages Web? Comment utiliser des fichiers de police installés localement sur les pages Web? Apr 05, 2025 pm 10:57 PM

Comment utiliser des fichiers de police installés localement sur les pages Web avez-vous rencontré cette situation dans le développement de pages Web: vous avez installé une police sur votre ordinateur ...

See all articles