Bonjour,
pourriez-vous répondre à ces deux questions :
- y-t-il une différence de rapidité entre une boucle for et une boucle while ?
- mysql_result est-il plus rapide que $row["champ"] ?
merci de vos réponses,
Sorenson
Bonjour,
pourriez-vous répondre à ces deux questions :
- y-t-il une différence de rapidité entre une boucle for et une boucle while ?
- mysql_result est-il plus rapide que $row["champ"] ?
merci de vos réponses,
Sorenson
un for($i=0;$i<count($toto);$i++) est plus lent qu'un for($i=0,$j=count($toto);$i<$j;++$i) car la fonction count est rappeler a chaque itération de la boucle.Envoyé par sorenson
Ensuite le while est légérement plus rapide, mais vu que l'on doit incrementer dans la boucle, la perte est quasi nulle.
pour ton $row[id] ou $row['monchamp'] c'est quasi équivalent, et le 2eme est bien plus lisible.
merci pour ta réponse,
j'ajouterai même qu'on purrait ajouter une variable avant la bucle for :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for($i=0,$j=count($toto);$i<$j;++$i) -- $lgTab=count($toto); for($i=0,$i<$lgTab;$i++)
Ce que fait le ,$j=count...Envoyé par sorenson
Ps : et le ++$i est plus rapide, mais la je chipotte
tout à fait
le ++$i ? oui... efefctivement, je viens d'ouvrir mon bouquin pour regarder il me dit ceci :
echo $i++."--".$i donne 9--10
echo ++$i."--".$i donne 10--10
génial.
En fait, c'etait tres sensible sur php4, moins sur php5, mais ça reste une abération car en C il n'y a pas de différence.Envoyé par sorenson
En fait, en analysant la chose, on s'apperçoit que php, pour faire un i++, crée une variable intermediaire, lui met la valeur de i, l'incremente et la renvoit a i.
un ++i incrémente directement la destination (par adressage).
C'est comme si tu met une chaine
$toto="bob";
echo 'salut le monde $toto va bien';
et
echo "salut le monde $toto va bien";
Le 1er cas ira 3 fois plus vite que le 2eme echo, sauf que le 1er ne va pas interpreter le $toto, d'ou la vitesse supérieure.
Bref, il y a plein d'astuce a la con pour accélérer un script.
Partager