Lorsque nous développons en PHP, nous rencontrons parfois le message d'erreur « Essayer d'obtenir la propriété « d'un non-objet » ». La raison de cette erreur est généralement que le programme accède à un objet qui n'existe pas ou n'est pas instancié, ce qui empêche l'analyseur PHP de reconnaître les propriétés ou les méthodes de l'objet.
Alors, comment corriger cette erreur ? Ci-dessous, je vais vous présenter plusieurs solutions possibles.
1. Vérifiez le code
Tout d'abord, nous devons vérifier soigneusement le segment de code erroné. Parfois, lorsque nous écrivons un programme, nous supprimons accidentellement l'instruction d'initialisation ou d'affectation d'un objet, ce qui empêche le programme de trouver l'objet spécifié lors de l'exécution de méthodes ou d'accès aux propriétés ultérieurs.
Par conséquent, nous devons nous assurer que chaque objet du programme a été initialisé et attribué correctement. Si vous n'êtes pas sûr que ce soit correct, vous pouvez ajouter des instructions de sortie de débogage pour vérifier l'état de l'objet.
2. Utilisez les fonctions isset et vide pour déterminer les objets
En PHP, vous pouvez utiliser les fonctions isset et vide pour déterminer si une variable est définie ou vide. Par conséquent, nous pouvons utiliser les fonctions isset et vide pour porter des jugements avant d'accéder à l'objet afin d'éviter les erreurs causées par l'incapacité du programme à trouver l'objet.
Par exemple, en supposant que nous souhaitons accéder à l'attribut sexe d'un objet nommé $user, nous pouvons porter le jugement suivant :
if(isset($user) && !empty($user)){
echo $user -> ;sex;
}
De cette façon, l'attribut sex de l'objet ne sera affiché que lorsque l'objet existe réellement, sinon le programme ne produira rien.
3. Utilisez l'instruction try-catch
Lorsque nous ne parvenons pas à déterminer le flux d'exécution du programme, nous pouvons utiliser l'instruction try-catch. L'instruction try exécutera un morceau de code qui doit être essayé. L'instruction catch interceptera l'exception levée dans l'instruction try et exécutera le code après avoir intercepté l'exception.
Nous pouvons essayer d'accéder aux méthodes ou aux propriétés de l'objet dans l'instruction try. Si une erreur "Essayer d'obtenir la propriété 'du non-objet" se produit, nous pouvons gérer l'erreur dans l'instruction catch. Par exemple :
try{
echo $user->sex;
}catch(Exception $e){
echo "Une erreur s'est produite :" $e->getMessage();
}
.De cette façon, lorsque des erreurs surviennent, nous pouvons les détecter et les traiter.
En général, quelle que soit la solution utilisée, nous devons garantir autant que possible l'initialisation et l'affectation correctes des objets dans le programme pour éviter la situation où l'objet est introuvable. Dans le même temps, utiliser davantage de résultats de débogage et de gestion des exceptions pendant le développement peut également nous aider à localiser rapidement les erreurs et à les corriger.
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!