Ciclo e return em PHP
Suponha que temos uma função que retorna a soma
de números de 1 a 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // exibirá 15
?>
Agora, suponha que coloquemos o return
dentro do ciclo, assim:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
Neste caso, o ciclo executará apenas uma
iteração e ocorrerá uma saída automática
da função (e, consequentemente, do ciclo). E em uma
iteração do ciclo, a variável $sum conterá
apenas o número 1, e não a soma total desejada.
O que será exibido na tela como resultado da execução do seguinte código:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Explique o porquê.
O que o autor deste código pretendia fazer? Corrija o erro do autor.