W3docs

endforeach

Le mot-clé "endforeach" est une structure de contrôle PHP qui marque la fin d'une boucle "foreach". Syntaxe, exemples et erreurs courantes.

Le mot-clé PHP endforeach

endforeach est le mot-clé de fermeture de la syntaxe alternative PHP pour la boucle foreach. Au lieu d'encadrer le corps de la boucle avec des accolades, vous ouvrez le bloc avec un deux-points (:) et vous le fermez avec endforeach;. Le comportement est identique à la version avec accolades — seule la ponctuation change.

Cette page couvre la syntaxe, les cas d'utilisation, des exemples concrets et les pièges courants (mélange de syntaxes, références) qui surprennent souvent les développeurs.

Syntaxe

Vous remplacez le { d'ouverture par : et le } de fermeture par endforeach; :

foreach ($array as $value):
  // code to be executed
endforeach;

Cela fonctionne aussi avec la forme clé/valeur :

foreach ($array as $key => $value):
  // code to be executed
endforeach;

Les deux sont fonctionnellement identiques à la syntaxe standard avec accolades :

foreach ($array as $value) {
  // code to be executed
}

Quand l'utiliser

La syntaxe alternative existe principalement pour les templates — des fichiers qui mélangent PHP et HTML. Un } de fermeture peut être difficile à associer à son accolade ouvrante quand il y a du HTML entre les deux, alors que endforeach; est explicite et auto-documenté :

<ul>
<?php foreach ($products as $product): ?>
  <li><?= htmlspecialchars($product) ?></li>
<?php endforeach; ?>
</ul>

Dans du code PHP pur (sans HTML incorporé), la plupart des équipes préfèrent la syntaxe avec accolades. Choisissez un style par fichier et restez cohérent.

Exemples

Exemples de endforeach en PHP

<?php

// Example 1
$array = ["apple", "banana", "cherry"];
foreach ($array as $value):
  echo $value . PHP_EOL;
endforeach;

// Output:
// apple
// banana
// cherry

// Example 2
$array = ["a" => "apple", "b" => "banana", "c" => "cherry"];
foreach ($array as $key => $value):
  echo $key . " = " . $value . PHP_EOL;
endforeach;

// Output:
// a = apple
// b = banana
// c = cherry

L'exemple 1 itère sur une liste simple et affiche chaque valeur ; l'exemple 2 itère sur un array associatif en capturant à la fois la $key et la $value.

Erreurs courantes

Ne mélangez pas les deux syntaxes. Si vous ouvrez avec :, vous devez fermer avec endforeach; — et si vous ouvrez avec {, vous devez fermer avec }. Mélanger les deux provoque une erreur d'analyse :

// Parse error: this is invalid
foreach ($array as $value): // opens with a colon
  echo $value;
} // ...but tries to close with a brace

N'oubliez pas le point-virgule. C'est endforeach;, pas endforeach. Oublier le point-virgule est une faute de frappe courante qui déclenche une erreur de syntaxe.

Le piège des références s'applique ici aussi. Comme avec tout foreach, si vous itérez par référence (as &$value), la variable $value pointe toujours vers le dernier élément après la fin de la boucle. Utilisez toujours unset($value) ensuite pour éviter des bugs surprenants :

$array = [1, 2, 3];
foreach ($array as &$value):
  $value *= 2;
endforeach;
unset($value); // break the reference

print_r($array);
// Output:
// Array ( [0] => 2 [1] => 4 [2] => 6 )

Mots-clés de syntaxe alternative associés

endforeach fait partie d'une famille de terminateurs de syntaxe alternative. Chaque boucle et structure conditionnelle possède le sien :

Pour la boucle elle-même, consultez le chapitre complet sur la boucle foreach.

Conclusion

endforeach ferme la forme avec deux-points d'une boucle foreach. Utilisez-le dans les templates où PHP et HTML sont imbriqués, maintenez une syntaxe cohérente au sein d'un bloc, et n'oubliez pas le point-virgule final.

Pratique

Pratique
Quelle est la syntaxe pour utiliser la structure de contrôle endforeach en PHP ?
Quelle est la syntaxe pour utiliser la structure de contrôle endforeach en PHP ?
Was this page helpful?