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;
}
}
?>