Аптымізацыя праз убудаваныя функцыі ў 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));
?>
Маral: перад рашэннем задачы абавязкова правярайце, ці няма для яе рашэння ўбудаванай функцыі 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;
?>