Returnin käyttö silmukassa PHP:ssä
Se, että return sijaitsee silmukan sisällä,
ei aina ole virhe.
Seuraavassa esimerkissä on tehty funktio, joka
määrittää, kuinka monta ensimmäistä taulukon elementtiä
tarvitaan summattavaksi, jotta summa tulee suuremmaksi tai
yhtä suureksi kuin 10:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Jos summa on suurempi tai yhtä suuri kuin 10:
if ($sum >= 10) {
return $i + 1; // poistutaan silmukasta ja funktiosta
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
Seuraavassa esimerkissä on tehty funktio, joka
laskee, kuinka monta kokonaislukua, alkaen
1:stä, tarvitaan summattavaksi, jotta tulos
olisi suurempi kuin 100:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // päättymätön silmukka
$sum += $i;
if ($sum >= 100) {
return $i; // silmukka pyörii kunnes poistutaan täältä
}
$i++;
}
}
echo func();
?>
Kirjoita funktio, joka parametrina saa
luvun ja jakaa sen 2:lla
niin monta kertaa, kunnes tulos on pienempi
kuin 10. Funktion tulee palauttaa
iteraatioiden määrä, joka tarvittiin tuloksen saavuttamiseksi.