2010-12-31 1 views

Répondre

2

Pour les boucles sont un peu plus rapide, mais considérer les points suivants:

$bar = array("cow"=>"moo", "cat"=>"meaw", "dog"=>"barf"); 
foreach($bar as $key => $value){ 
echo "The ".$key." goes ".$value.".<br>"; 
} 
  • Avec foreach vous avez un accès plus facile aux valeurs ainsi que les valeurs clés. Cela devient plus facile et plus apparent avec les opérations de tableau associatif.
  • foreach est un peu plus facile à lire et à maintenir.
+0

thats un bon point –

+0

Ceci n'est pas associé à 'for' ou' foreach'. N'utilisez pas de guillemets doubles si vous initialisez simplement des chaînes, car PHP recherche des variables à l'intérieur de chaînes entre guillemets doubles en ajoutant plus de traitement. "" La clé ". $" "Va". $ Value. ".
" 'pourrait être réécrit comme' "La {$ key} va {$ value}.
" '(en utilisant une interpolation de variable) ou' 'The' . clé $. ' va ' . Valeur $ '.
'' (en utilisant la concaténation). –

+0

@Amil: voir le lien RobertPitt posté sous la question pour un exemple pratique de la façon dont il est faux. – Mchl

2

S'il y a une différence de performance, c'est probablement négligeable. Je voudrais rester avec foreach car il est plus clair que vous faites l'itération sur un tableau ici (foreach est utilisé pour l'itération sur les classes d'implémentation Iterator ainsi)

+0

apparemment la différence est d'environ 276%, selon phpbench (voir le lien dans le commentaire de robert). Non négligeable mais dans la plupart des cas probablement sans signification. La boucle for est plus rapide - si vous bouclez quelques milliers de choses, qui s'en soucie, mais si vous bouclez 500 000, cela peut être important. – Erik

+1

Voir tous les tests sur cette page. En fonction de ce que vous faites pour() peut être plus lent que foreach(). Étant donné que la partie la plus lente d'un PHP moyen est la communication avec des sources de données externes (une base de données dans la plupart des cas), je l'appelle encore négligeable. – Mchl

Questions connexes