Optimering via indbyggede funktioner i PHP
Lad os sige en programmør kontrollerer, om
der findes tallet 5 i et array:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // vi forlader løkken for at undgå unødvendige iterationer
}
}
var_dump($exists);
?>
Jeg påstår, at der er noget galt med denne kode. Hvad er der i vejen, vi forlader jo løkken efter vi har fundet tallet 3? Sagens kerne er, at indbyggede PHP-funktioner altid arbejder mange gange hurtigere end tilsvarende hjemmelavet kode.
I vores tilfælde findes der en funktion in_array,
der løser den stillede opgave - og det er denne funktion,
man bør bruge:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Moralen: Før du løser en opgave, skal du altid kontrollere, om der ikke findes en indbygget PHP-funktion til dens løsning.
I den følgende kode finder en programmør summen af elementerne i et array. Optimér denne programmørs løsning.
Her er koden:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
I den følgende kode finder en programmør produktet af elementerne i et array. Optimér denne programmørs løsning:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>