#'!*%@!?#!!** de saloperie de *!!#¡@* de PHP de m*@#*! - PHP - Programmation
Marsh Posté le 07-04-2010 à 18:26:20
ReplyMarsh Posté le 07-04-2010 à 19:16:48
C'est pourtant clair non?
Call to a member function myFunction() on a non-object |
Tu veux pas que ça te corrige l'erreur automatiquement aussi ?
Marsh Posté le 07-04-2010 à 20:13:32
stealth35 a écrit : fais un
|
Merci bien, j'ai résolu le problème.
un var_dump retournait NULL, du coup le problème était en fait beaucoup plus simple, $myClass était vide au moment où j'essayais de l'utiliser...
comment ça se fait ? bien en fait cette ligne était appelée indirectement depuis la partie __construct() de cette même classe, et donc j'imagine que PHP laisse la variable vide tant que l'instanciation n'est pas terminée (cf. l'excution de __construct et de tout ce que __construct appelle). Bref, il a fallu mettre le code qui appelle la ligne 69 dans une deuxième méthode de la classe (constructPart2() - et que j'appelle après avoir créé l'instance, une fois que la variable est correctement assignée...)
bref, PHP pourrait s'améliorer sur ce point.
merci en tous cas.
Alisteroid a écrit : C'est pourtant clair non?
Tu veux pas que ça te corrige l'erreur automatiquement aussi ? |
Oui, c'est tellement clair que le problème n'avait absolument rien à voir avec le message.
Marsh Posté le 08-04-2010 à 09:23:40
Deux choses :
- Apprend à écrire un titre explicite. Tu t'imagine ce que donnerai ce forum si tout le monde créait des topics comme le tiens?
- Le commentaire de sebondus était tout à fait justifié. Le problème est totalement lié à ce qu'il a dit. Pas de sa faute si tu étais à côté de la plaque :
Citation : |
ça veut dire : Tu essaies d'appeler une fonction (myFunction()) sur un variable n'était pas en objet. Pourquoi ça? Parce que $myClass était vide. De ce fait $myClass->myVar était nul. Donc appeler null->myFunction() est invalide => PHP gueule.
Donc conclusion : PHP a beau être un langage de merde, c'est pas sa faute si tu sais pas lire ses messages d'erreur.
Marsh Posté le 08-04-2010 à 11:09:07
GPT2 a écrit :
un var_dump retournait NULL, du coup le problème était en fait beaucoup plus simple, $myClass était vide au moment où j'essayais de l'utiliser... |
GPT2 a écrit :
|
En effet
Montre ton code, y a forcément une erreur de conception, tu as l'air d'avoir "bidouillé" pour contourner cette erreur .
Marsh Posté le 08-04-2010 à 11:59:47
SuperKebab a écrit : |
Code :
|
Marsh Posté le 08-04-2010 à 16:06:23
!is_null(), c'est pas mal comme fonction aussi Ou même empty()...
Marsh Posté le 08-04-2010 à 16:09:53
Pour moi le is_null() ou l'opérateur revient exactement au même.
Mais peut-être que tu as un bon argument pour l'utiliser à la place de l'opérateur ?
Marsh Posté le 08-04-2010 à 16:18:37
Le risque de se tromper entre != et !== et, éventuellement, la lisibilité...
Marsh Posté le 08-04-2010 à 17:42:26
Pas bête en effet pour le risque de se tromper. Lisibilité je suppose que c'est une affaire de goût, je préfère l'opérateur
Marsh Posté le 07-04-2010 à 18:04:35
Bonjour ,
J'arrive pas à me débarrasser de cette cochonnerie de duo notice + erreur:
Notice: Trying to get property of non-object in [...] on line 69
Fatal error: Call to a member function myFunction() on a non-object in [...] on line 69
Voilà ce qu'il y a à la ligne 69:
$myClass est une variable comprenant une instance d'une classe comprenant une variable public $myVar, comprenant elle-même une instance d'une classe qui offre la méthode myFunction().
Pourquoi ça marche pas ?
Merci par avance de votre généreuse aide.