Optymalizacja poprzez wbudowane funkcje w PHP
Załóżmy, że pewien programista sprawdza, czy
w tablicy znajduje się liczba 5:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // wyjdziemy z pętli, aby nie kręciła się niepotrzebnie
}
}
var_dump($exists);
?>
Twierdzę, że z tym kodem coś jest nie tak. Co jest nie w porządku, przecież wychodzimy z pętli po znalezieniu liczby 3? Chodzi o to, że funkcje wbudowane w PHP zawsze działają rzędu wielkości szybciej niż podobny kod napisany samodzielnie.
W naszym przypadku istnieje funkcja in_array,
która rozwiązuje postawione zadanie - i korzystać
należy właśnie z tej funkcji:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Morał: przed rozwiązaniem zadania koniecznie sprawdź, czy nie ma dla jego rozwiązania wbudowanej funkcji PHP.
W następnym kodzie pewien programista znajduje sumę elementów tablicy. Zoptymalizuj rozwiązanie tego programisty.
Oto kod:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
W następnym kodzie pewien programista znajduje iloczyn elementów tablicy. Zoptymalizuj rozwiązanie tego programisty:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>