Ciclo e return in PHP
Supponiamo di avere una funzione che restituisce la somma
dei numeri da 1 a 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // visualizzerà 15
?>
Ora supponiamo di posizionare return
all'interno del ciclo, in questo modo:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
In questo caso, il ciclo verrà eseguito solo per una
iterazione e avverrà un'uscita automatica
dalla funzione (e quindi anche dal ciclo). E in una
sola iterazione del ciclo, nella variabile $sum ci sarà
solo il numero 1, e non l'intera somma richiesta.
Cosa verrà visualizzato sullo schermo come risultato dell'esecuzione del seguente codice:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Spiegare il perché.
Cosa voleva fare l'autore di questo codice? Correggere l'errore dell'autore.