Le problème des accolades omises dans les boucles en PHP
Bien qu'il soit possible d'omettre les accolades dans les boucles, je le déconseille fortement, car ce type de code conduit souvent à des erreurs.
Regardons un exemple. Supposons que nous ayons le code suivant :
<?php
for ($i = 0; $i <= 9; $i++)
echo $i; // affichera les nombres de 0 à 9
?>
Je vais apporter une petite modification au code ci-dessus (trouvez laquelle) - et il cessera de fonctionner :
<?php
for ($i = 0; $i <= 9; $i++);
echo $i; // affichera 10
?>
Alors, qu'ai-je modifié ?
Le problème est survenu parce que j'ai placé
un point-virgule après la parenthèse ) de
la boucle. Dans ce cas, on obtient ce qu'on appelle
une boucle sans corps : elle va simplement
tourner sans exécuter d'instructions, et la ligne
suivante ne lui sera plus rattachée. Par conséquent,
pour éviter les problèmes, je recommande toujours
de mettre des accolades dans les boucles.
Dites quel sera le résultat de l'exécution du code suivant :
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem);
echo $elem;
?>