|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : octobre 2008 Messages : 93 ![]() |
Bonjour à tous,
Je ne débute pas en PHP mais ma question est un peu bête alors je la met ici. Je fait une classe pour une web-app, j'ai donc plusieurs méthodes notamment une exist($anObject) qui test si l'objet passé en paramètre existe dans la collection ou non. J'ai une autre méthode getIndexOfObject($anObject) dans laquelle je souhaite tester l'existence de l'objet dans la collection avant de le chercher dedans. Pour cela j'appel donc ma méthode exist($anObject). Seulement ds la méthode exist je vérifie aussi le que la classe de l'objet correspond à la classe de la collection en cours. J'utilise donc $this. Je me demande si le $this dans la méthode exist($anObject) va fonctionner étant donnée que j'apelle cette méthode tout simplement depuis une autre méthode. Voici le code : Code :
Merci d'avance pour vos réponses |
||
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Inscription : octobre 2008 Messages : 93 ![]() |
Je viens de penser (ouai je débute un peu encore en PHP OO) que si je modifie mon code ainsi, ca devrait marcher :
Code :
|
||
|
00
|
|
|
#3 | ||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Citation:
Citation:
En d'autres termes, tu devrais te tourner vers l'extension des classes SPL existantes plutôt que de redéfinir ArrayObject ou SplObjectStorage. Tu as également un problème de conception: la méthode "exist" fait intervenir un array_key_exists en demandant l'id de l'instance qu'il reçoit en paramètre, ce qui induit un couplage fort entre ton hashmap et ses éléments. Si c'est effectivement ce qu'on veut, il serait de bon ton de spécifier quel type d'objet exists peut recevoir en paramètre, ce qui peut se faire de cette façon: Code :
D'ailleurs tu peux aussi bien remplacer: Code :
Code :
return array_key_exists($anObject->id, $this->collection);
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||
|
00
|
Copyright © 2000-2012 - www.developpez.com