Tsükkel ja return PHP-s
Olgu meil funktsioon, mis tagastab summa
numbritest 1 kuni 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // väljastab 15
?>
Olgu nüüd, et me asetame return
tsükli sisse, niimoodi:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
Sel juhul tsükkel käib läbi vaid ühe
iteratsiooni ja toimub automaatne väljumine
funktsioonist (ja samaaegselt ka tsüklist). Aga ühe
tsükli iteratsiooni jooksul muutujas $sum tekib
ainult number 1, mitte kogu vajalik summa.
Mis väljastatakse ekraanile järgmise koodi täitmise tulemusena:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Selgitage miks.
Mida autor selle koodiga teha tahtis? Parandage autori viga.