Optimizare prin funcții încorporate în PHP
Să presupunem că un programator verifică dacă
într-un array se află numărul 5:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // vom ieși din ciclu, ca să nu mai ruleze în plus
}
}
var_dump($exists);
?>
Afirm că ceva nu este în regulă cu acest cod. Ce anume, dacă ieșim din ciclu după ce am găsit numărul 3? Problema este că funcțiile încorporate în PHP întotdeauna lucrează de ordinul de mărime mai rapid decât codul scris manual similar.
În cazul nostru există funcția in_array,
care rezolvă problema dată, - și trebuie să o
folosim exact pe această funcție:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Morala: înainte de a rezolva o problemă, asigurați-vă obligatoriu că nu există o funcție încorporată în PHP pentru rezolvarea ei.
În următorul cod, un programator găsește suma elementelor array-ului. Optimizați soluția acestui programator.
Iată codul:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
În următorul cod, un programator găsește produsul elementelor array-ului. Optimizați soluția acestui programator:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>