PHP 4 a introduit la construction foreach, un peu comme Perl et d'autres langages. C'est juste un moyen pratique de parcourir un tableau. foreach ne peut être utilisé qu'avec des tableaux et une erreur se produira lorsque vous tenterez de l'utiliser avec d'autres types de données ou une variable non initialisée. Il existe deux syntaxes, la seconde étant une extension moins importante mais utile de la première.
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Le premier format parcourt le tableau array_expression donné. À chaque passage dans la boucle, la valeur de la cellule actuelle est affectée à $value et le pointeur à l'intérieur du tableau est avancé d'un pas (la cellule suivante sera donc obtenue dans la boucle suivante).
Le deuxième format fait la même chose, sauf que le nom de clé de la cellule actuelle sera également attribué à la variable $key dans chaque boucle.
Depuis PHP 5, il est également possible de parcourir des objets.
Remarque : lorsque foreach commence à s'exécuter, le pointeur à l'intérieur du tableau pointe automatiquement vers la première unité. Cela signifie qu'il n'est pas nécessaire d'appeler reset() avant la boucle foreach.
Remarque : à moins que le tableau ne soit référencé, foreach opère sur une copie du tableau spécifié, pas sur le tableau lui-même. foreach a des effets secondaires sur les pointeurs de tableau. Ne vous fiez pas à la valeur d'un pointeur de tableau pendant ou après une boucle foreach à moins qu'il ne soit réinitialisé.
Depuis PHP 5, il est facile de modifier les éléments d'un tableau en ajoutant & avant $value. Cette méthode attribue par référence plutôt que de copier une valeur.
<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) ?>
Cette méthode n'est disponible que lorsque le tableau parcouru peut être référencé (par exemple, il s'agit d'une variable).
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>
Plus de fonctions en PHP - explication détaillée de l'utilisation de foreach() Pour les articles connexes, veuillez faire attention au site Web PHP chinois !