Беҳсозии даврҳои иловагии давр дар PHP
Дар рамзи зерин як барномасоз месанҷад,
ки оё дар массиви рақами 3 мавҷуд аст:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
}
}
var_dump($exists);
?>
Ишора чист бо ҳалли ӯ? Гумон мекунам, ки
ҳеҷ амали иловагӣ дар давр анҷом дода намешавад. Мушкилот,
ҳамоно, дар он аст, ки пас аз он ки муайян карда шуд,
ки рақами 3 дар массив мавҷуд аст - давр
ҳамчунон то поёни массив давом меёбад.
Аз ҳама номақбултар он хоҳад буд, ки рақами 3
дар ҷое дар аввали массив ёфта шавад, ва худи массив
дарозии, бигӯем, 1000 элемент дошта бошад.
Як ҳазор даври бефоида ва иловагӣ ба даст меояд!
Беҳамто нест.
Рамзро беҳсозем, даврро ба вақт ист медорем:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
break;
}
}
var_dump($exists);
?>
Рамзи зерин ҳисоб мекунад, ки чӣ қадар
элементҳои массивро ҷамъ кардан лозим аст,
то ҷамъ аз 10 зиёд шавад.
Беҳсозӣ анҷом диҳед:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
$i = 1;
foreach ($arr as $elem) {
$sum += $elem;
if ($sum <= 10) {
$i++;
}
}
echo $i;
?>
Рамзи зерин рақамҳои ҷуфт аз фосилаи додашударо чоп мекунад. Беҳсозӣ анҷом диҳед:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0) {
echo $i;
}
}
?>
Рамзи зерин рақамҳоро чоп мекунад,
ки ба 2
ва ба 3 якбора тақсимшавандаанд. Беҳсозӣ анҷом диҳед:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0 and $i % 3 === 0) {
echo $i;
}
}
?>