O problema das chaves omitidas em loops no PHP
Embora seja possível omitir as chaves nos loops, eu não recomendo fazê-lo, pois esse tipo de código frequentemente leva a erros.
Vamos ver um exemplo. Suponha que temos o seguinte código:
<?php
for ($i = 0; $i <= 9; $i++)
echo $i; // exibirá os números de 0 a 9
?>
Farei uma pequena alteração no código acima (tente encontrar qual) - e ele parará de funcionar corretamente:
<?php
for ($i = 0; $i <= 9; $i++);
echo $i; // retornará 10
?>
Então, o que eu alterei?
O problema surgiu porque eu coloquei
um ponto e vírgula após o parêntese ) do
loop. Nesse caso, obtém-se o que é chamado de
loop sem corpo: ele simplesmente irá iterar
sem executar nenhum comando, e a próxima linha não será
parte dele. Portanto, para evitar problemas,
eu sempre recomendo usar chaves
nos loops.
Explique qual será o resultado da execução do seguinte código:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem);
echo $elem;
?>