|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
Salut à tous !
Petit problème avec un retour de méthode privée. Je vous montre le code Code :
Cependant, lorsque le test s'avère positif, aucun retour n'est effectué. Ps: le but de cette fonction est de parcourir tout le dossier $path (fichier et sous dossier) et de trouver un éventuel 'filename.ini'. Auriez-vous une idée ? Merci, bisous |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() |
Salut
Il existe plus simple avec php pour faire ce que tu souhaites en utilisant la SPL : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
Le but de mon projet personnel étant de faire un maximum de chose de mes propres mains, à l'artisanal, je me permet de refuser ta solution.
Je réitère donc ma question ^^ Ne voyant pas ce qui ne marche pas, j'appelle à l'aide ! |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
Problème résolu par moi même.
Solution : - Cette fonction étant récursive, le fait de retourner vrai ne stoppera pas complètement la fonction. Cela, retournera vrai pour la fonction recrée avec les paramètres modifiés (Ne connait pas le therme exact). Enfin, pour pouvoir traiter le return true, il faut avoir une porte de sortie dans la fonction afin de pouvoir, si un retour est effectué d'être traiter de la manière appropriée. Merci ! |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Le pb est que tu ne traites pas le résultat de l'appel récursif à la méthode searchCurrentInstallation : un TRUE ne sera jamais remonté de la pîle d'exécution.
EDIT : grilled, voilà ce que ça fait de divaguer à droite à gauche
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
Merci, mais avec un peu de réflexion, j'avais réussi à répondre à ma question !
Merci de ta réponse en tout cas ! |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 791 ![]() |
Salut,
pour information, en général on évite d'appeler count() à chaque tour de boucle dans une itération car si je ne me trompe pas la taille d'un Array n'est pas récupérable directement en PHP. Cela n'aura sans doute pas d'impact sur ta méthode mais peut-être sur d'autres développements futurs : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
Si, la taille d'un array est récupérable directement en PHP, le seul problème lorsqu'on appelle un count dans une boucle, c'est que l'on ne l'optimise pas.
En effet, la taille sera recalculée à chaque tour, ce qui n'est pas très optimisé. Le mieux est de calculer la taille avant de rentrer dans la boucle. |
|
|
01
|
|
|
#9 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 791 ![]() |
Tu fais comment pour avoir la taille sans appeler count() ?
Car count() semble tout recalculer et pas simplement lire une variable "size" ou "length" qui serait stockée dans la structure interne PHP Array et mise à jour à chaque insertion suppression dans le tableau. |
|
|
00
|
|
|
#10 | |
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
C'est ce que j'ai dis :
Citation:
Mais cela, tu l'avais compris |
|
|
|
01
|
|
|
#11 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 791 ![]() |
En fait, il y a deux choses différentes à prendre en compte, l'appel de la fonction et l'exécution du corps de la fonction en lui-même.
Après vérification dans les sources de la 5.3.6 effectivement le nombre d'éléments est stocké dans la HashTable et donc count() ne recalcule pas la taille. Je ne pensais pas que l'appel d'une fonction aussi simple (un getter évolué) pouvait jouer comme ça sur les perfs, j'en ai toujours déduit que la taille était recalculée |
|
|
00
|
|
|
#12 |
|
Membre à l'essai
![]() Anthony Boulmier Inscription : mars 2011 Messages : 24 ![]() |
Pareil pour moi ^^ Merci de ta recherche et de l'info !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com