| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
damdec Maitre du phpinfo()
Inscrit le: 25 Aoû 2007 Messages: 27
|
|
|
 |
Hubert Roksor Détendu

Inscrit le: 07 Fév 2005 Messages: 3155
|
Posté le: 19 Avr 2008, 16:48 Sujet du message: |
|
|
Attention, le premier lien que tu cites est super vieux et porte si mes souvenirs sont bons sur PHP 4. Entre temps, les choses ont beaucoup changé. De plus, je recommande de ne pas porter trop d'attention à ce genre d'optimizations, parce qu'elles font rarement gagner grand-chose en performance à l'échelle d'un script et surtout de ne jamais croire les benchmarks d'autrui et toujours vérifier toi-même sur une version récente de PHP.
Ceci dit, tu seras heureux d'apprendre que foreach est généralement 3 à 5 fois plus rapide sous PHP 5.2 qu'une solution équivalente basée sur list() / each(), notamment parce que les deux fonctionnent de manière équivalente. "Mais pourquoi une telle différence alors ?" me demanderas-tu. En fait c'est simple, tu as oublié d'utiliser reset() avant ta boucle. foreach remet toujours le pointeur au début avant de commencer. _________________ Le saviez-vous ? Mozilla retient HTTP prisonnier du siècle dernier, à vous de voter ! (bug #327765) |
|
|
 |
damdec Maitre du phpinfo()
Inscrit le: 25 Aoû 2007 Messages: 27
|
Posté le: 19 Avr 2008, 17:01 Sujet du message: |
|
|
| effectivement je viens d'ajouter un reset dans mon script de test et cela correspond à ce que tu dis : foreach est 3 à 5 fois plus rapide... Mais alors dans une utilisation courante quand faut il choisir foreach plutôt que while/list ? |
|
|
 |
Hubert Roksor Détendu

Inscrit le: 07 Fév 2005 Messages: 3155
|
Posté le: 19 Avr 2008, 17:12 Sujet du message: |
|
|
Quand ? Hmm, toujours. foreach est plus simple et plus performant, il n'y a donc aucune raison d'émuler son fonctionnement avec reset()/list()/each(). Cette méthode date de l'époque où foreach n'existait pas, c'est pour la remplacer qu'il a été créé. _________________ Le saviez-vous ? Mozilla retient HTTP prisonnier du siècle dernier, à vous de voter ! (bug #327765) |
|
|
 |
damdec Maitre du phpinfo()
Inscrit le: 25 Aoû 2007 Messages: 27
|
Posté le: 19 Avr 2008, 17:15 Sujet du message: |
|
|
Merci pour ces réponses ultra rapide ( encore plus qu'un foreach... ok je sors ) !!
Bon bah ça me rassure en tout cas, donc je passe le sujet en résolu ! |
|
|
 |
HyWaN Magohamoth

Inscrit le: 03 Mai 2005 Messages: 2123 Localisation: Haut-doubs |
Posté le: 19 Avr 2008, 20:55 Sujet du message: |
|
|
Tiens d'ailleurs j'ai un bench Hubert/foreach et ...
(pour pas que damdec se sente seul ... ) _________________ « Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »
Actuellement :
- livre : Programmation Orientée Objet avec PHP ;
- Hoa Framework : http://hoa-project.net.
|
|
|
 |
|