PHP:n silmukoissa aaltosulkeisiin liittyvä ongelma
Vaikka silmukoissa aaltosulkeita voidaan jättää pois, en suosittele sitä lainkaan, sillä tällainen koodi johtaa usein virheisiin.
Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava koodi:
<?php
for ($i = 0; $i <= 9; $i++)
echo $i; // tulostaa numerot 0:sta 9:ään
?>
Teen pienen korjauksen yllä olevaan koodiin (etsi mikä) - ja se lakkaa toimimasta:
<?php
for ($i = 0; $i <= 9; $i++);
echo $i; // antaa 10
?>
Eli, mitä korjasin?
Ongelma syntyi siitä, että laitoin
puolipisteen silmukan sulkeen ) jälkeen.
Tällöin syntyy niin kutsuttu
runkoon vailla oleva silmukka: se pyörii vain
tyhjänä, ja seuraava rivi ei enää kuulu
siihen. Siksi, ongelmien välttämiseksi,
suosittelen aina käyttämään aaltosulkeita
silmukoissa.
Kerro, mikä on seuraavan koodin suorituksen tulos:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem);
echo $elem;
?>