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