PHP-те цикл және return
Бізде 1-ден 5-ке дейінгі сандардың қосындысын қайтаратын
функция бар делік:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // шығады 15
?>
Енді return-ті цикл ішінде орналастырайық, мына түрде:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
Бұл жағдайда цикл тек бір итерацияны орындайды және функциядан (және циклден де) автоматты түрде шығу орын алады. Ал циклдің бір итерациясы кезінде $sum айнымалысында барлық қажетті қосынды емес, тек 1 саны болады.
Мына кодты орындау нәтижесінде экранға не шығады:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Неге осылай болатынын түсіндіріңіз.
Бұл кодтың авторы не істегісі келген? Автордың қатесін түзетіңіз.