Parcourir un tas de cartes une par une, sans avoir à compter combien il y en a ni à se soucier de leur ordre exact de rangement : c’est ce que fait foreach, en offrant à chaque tour de boucle l’élément suivant du tableau parcouru.
La boucle reine dans les templates WordPress
Afficher une liste d’articles, les termes d’une taxonomie ou les champs d’un formulaire personnalisé passe presque toujours par une boucle foreach dans un template WordPress, souvent en complément de la boucle principale WP_Query qui utilise plutôt while ( have_posts() ).
Exemple
$categories = get_the_category();
foreach ($categories as $categorie) {
echo '<a href="' . esc_url(get_category_link($categorie->term_id)) . '">'
. esc_html($categorie->name) . '</a> ';
}
Chaque tour de boucle reçoit un objet catégorie différent, sans qu’il soit nécessaire de gérer un index numérique pour y accéder.
Bon à savoir
- La syntaxe
foreach ($tableau as $cle => $valeur)donne accès à la fois à la clé et à la valeur, indispensable pour parcourir un tableau associatif. - Modifier le tableau parcouru pendant l’exécution d’un
foreachpeut produire un comportement inattendu ; utiliser une référence (as &$valeur) exige de penser à faire ununset()après la boucle pour éviter des effets de bord. - Contrairement à
for,foreachne nécessite pas de connaître à l’avance le nombre d’éléments à parcourir, ce qui le rend plus sûr face à des tableaux de taille variable.