Problém složených závorek ve smyčkách v PHP
Ačkoli ve smyčkách lze složené závorky vynechat, velmi to nedoporučuji, protože takový kód často vede k chybám.
Podívejme se na příklad. Předpokládejme, že máme následující kód:
<?php
for ($i = 0; $i <= 9; $i++)
echo $i; // vypíše čísla od 0 do 9
?>
Udělám malou opravu v uvedeném kódu (zkuste najít jakou) - a přestane fungovat:
<?php
for ($i = 0; $i <= 9; $i++);
echo $i; // vypíše 10
?>
Takže, co jsem opravil?
Problém vznikl tím, že jsem dal
středník za závorku ) od
smyčky. V takovém případě vznikne takzvaná
smyčka bez těla: prostě se projede
uvnitř, a následující řádek se na ni již
nebude vztahovat. Proto, abychom se vyhnuli problémům,
vždy doporučuji používat složené závorky
u smyček.
Řekněte, jaký bude výsledek provedení následujícího kódu:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem);
echo $elem;
?>