Истифодаи return дар ҳалқа дар PHP
Он, ки return дар дохили ҳалқа ҷойгир аст,
ҳамеша метавонад хато набошад.
Дар мисоли оянда функсия сохта шудааст, ки
муайян мекунад, ки чанд унсури аввали массивро
бояд ҷамъ кард, то ҷамъ ба 10 баробар ё зиёд шавад:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Агар ҷамъ аз 10 зиёд ё баробар бошад:
if ($sum >= 10) {
return $i + 1; // аз ҳалқа ва аз функсия берун меоем
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
Дар мисоли оянда функсия сохта шудааст, ки
ҳисоб мекунад, ки чанд адади бутун, аз
1 сар карда, бояд ҷамъ карда шаванд, то натиҷа
аз 100 зиёдтар шавад:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // ҳалқаи беохир
$sum += $i;
if ($sum >= 100) {
return $i; // ҳалқа то он ҷо давр мезанад, ки дар ин ҷо берун наояд
}
$i++;
}
}
echo func();
?>
Функсия нависед, ки параметраш ададро қабул мекунад
ва онро ба 2
он қадар такрор мекунад, ки натиҷа аз
10 хурдтар шавад.
Бигзор функсия миқдори такрориро баргардонад,
ки барои расидан ба натиҷа зарур буд.