Optimizācija, izmantojot PHP iebūvētās funkcijas
Pieņemsim, ka kāds programmētājs pārbauda, vai
massīvā atrodas skaitlis 5:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // iziet no cikla, lai tas netiktu palaists lieku reizi
}
}
var_dump($exists);
?>
Es apgalvoju, ka ar šo kodu kaut kas nav kārtībā. Kas tad ir nepareizi, ja mēs izietam no cikla pēc tam, kad atradām skaitli 3? Lieta ir tāda, ka PHP iebūvētās funkcijas vienmēr strādā par kārtu ātrāk nekā līdzvērtīgs pašrakstīts kods.
Mūsu gadījumā pastāv funkcija in_array,
kas atrisina uzdevumu, - un lietot tieši vajag
šo funkciju:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Moral: pirms uzdevuma risināšanas noteikti pārbaudiet, vai tā atrisināšanai nepastāv PHP iebūvēta funkcija.
Nākošajā kodā kāds programmētājs atrod massīva elementu summu. Optimizējiet šī programmētāja risinājumu.
Lūk kods:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
Nākošajā kodā kāds programmētājs atrod massīva elementu reizinājumu. Optimizējiet šī programmētāja risinājumu:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>