Optimering med inbyggda funktioner i PHP
Låt oss anta att en programmerare kontrollerar om
siffran 5 finns i en array:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // avbryt loopen för att undvika onödiga iterationer
}
}
var_dump($exists);
?>
Jag hävdar att det är något fel med den här koden. Vad är det för fel, vi avbryter ju loopen efter att vi har hittat siffran 3? Saken är den, att inbyggda PHP-funktioner alltid arbetar avsevärt snabbare än motsvarande egenhändigt skriven kod.
I vårt fall finns funktionen in_array,
som löser den givna uppgiften - och det är den
funktionen som bör användas:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Lärdomen: innan du löser en uppgift, se alltid till att kontrollera om det finns en inbyggd PHP-funktion för att lösa den.
I följande kod hittar en programmerare summan av elementen i en array. Optimera lösningen som denna programmerare har gjort.
Här är koden:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
I följande kod hittar en programmerare produkten av elementen i en array. Optimera lösningen som denna programmerare har gjort:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>