PHPдаги ички функциялар орқали оптимизациялаш
Бирор программист массда
5 сони борми ёки йўқлигини текширсин:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // циклни ортиқча айланмаслиги учун уни тугатамиз
}
}
var_dump($exists);
?>
Мен бу кодда бирор ноторилик бор деб ўйлайман. Нима нотори, биз 3 сонини топганимиздан кейин циклдан чиқамиз-ку? Масал шундаки, PHPдаги ички функциялар ҳар доим ўзга ўхшаш ўз-ўзимиз ёзган кодимиздан бир даражада тезрок ишлайди.
Бизнинг ҳолимизда in_array функцияси мавжуд,
у белгиланган вазифани ҳал қилади, - ва фойдаланиш
керак бўлган айнан шу функциядир:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Маъно: вазифани ҳал қилишдан олдин ҳар доим унинг ҳал қилиши учун PHPда ички функция мавжудми-ю йўқлигини текшириб кўринг.
Кейинги кодда бирор программист масс элементларининг йиғиндисини топади. Ушбу программистнинг ечимини оптимизациялаш.
Код:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
Кейинги кодда бирор программист масс элементларининг кўпайтмасини топади. Ушбу программистнинг ечимини оптимизациялаш:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>