Оптимизация чрез вградени функции в 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;
?>