Lus en return in PHP
Gestel ons het 'n funksie wat die som van
getalle van 1 tot 5 teruggee:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // sal 15 uitvoer
?>
Gestel ons plaas nou die return
binne die lus, soos volg:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
In hierdie geval sal die lus slegs een
iterasie uitvoer en daar sal outomaties uit
die funksie (en dus ook uit die lus) gespring word. Met slegs een
iterasie van die lus sal die veranderlike $sum die
waarde 1 bevat, en nie die hele benodigde som nie.
Wat sal op die skerm vertoon word as gevolg van die uitvoering van die volgende kode:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Verduidelik hoekom.
Wat wou die skrywer van hierdie kode doen? Korrigeer die skrywer se fout.