|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Bonjour à vous qui voulez m'aider !
Je vous présente mon cas : je développe un site en php5, et j'ai besoin de récupérer les données d'une table de ma bdd. Pour cela, j'utilise le code ci dessous (je vous passe la connexion à la base...) qui fonctionne très bien. J'utilise des RecursiveArrayIterator de la SPL (Ce sont mes ContainerRubriques, qui héritent de RecursiveArrayIterator). Les données que je récupère sont des rubriques, qui peuvent avoir des sous-rubriques, qui peuvent elles-mêmes avoir des sous-rubriques. Code :
Et c'est là que ça plante ! Cette instruction devrait me renvoyer TRUE ou FALSE, et au lieu de ça, elle me renvoie NULL Merci d'avance... Cécilia. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
Je ne connais pas la SPL mais, dans la doc, ils conseillent quelque chose dans ce style : Code :
En outre, puisque tu n'utilises pas l'itérateur ($iterator->next() et compagnie...), je doute qu'il soit utile d'appeler rewind(). Je ne sais pas, tu nous diras !
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
getIterator() ne fonctionne pas car c'est une méthode de IteratorAggregate, or mon container est un RecursiveArrayIterator.
Sinon pour te répondre, dans le code que j'ai publié je n'utilise pas l'itérateur, mais dans la suite je le fais, avec les méthodes rewind(), valid() et next() (qui me renvoient toutes NULL au lieu de TRUE D'ailleurs, je l'ai fais aussi dans un autre fichier dans lequel ça renvoyait bien true, donc ça prouve qu'il est prévu d'utiliser directement ces méthodes (même si un foreach le ferait tout seul pour moi ! Ici j'en ai besoin car je fais des tests unitaires sur une classe, enfin bref... C'est bien embêtant car les méthodes fonctionnent, elles me permettent bien de me déplacer dans mon container, mais elle ne renvoient pas la bonne valeur, c'est étrange... Merci quand même Yogui ! |
|
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Flûte, ça le fait pas, je passe responsable et je réponds n'imp...
![]() Pour rester dans le sujet, jette un oeil à ce lien : http://www.php.net/~helly/php/ext/sp...3896cf6929e136 Il semble que ta méthode rewind() ne retourne rien du tout, contrairement à ce que tu dis. Si je pige bien, tu devrais pouvoir appeler valid() à la suite pour vérifier.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Mouarf c'est la doc que je lis depuis 3 jours ;o) Ils ne le marquent pas mais pourtant dans un fichier qu'on a fait avec un autre développeur ça retourne bien true... On y comprend rien...
Valid() permet en effet de vérifier qu'il y a bien un élément là où se trouve le pointeur dans l'itérateur. |
|
|
00
|
|
|
#6 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
J'imagine que tu le sais mais je préfère préciser...
Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
En fin de compte tu avais raison cette méthode ne renvoit rien du tout !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com