Optimalisering med innebygde funksjoner i PHP
La oss si at en programmerer sjekker om
det finnes tallet 5 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; // avslutter løkken for å unngå unødvendige iterasjoner
}
}
var_dump($exists);
?>
Jeg hevder at det er noe galt med denne koden. Hva er i veien, vi avslutter jo løkken etter at vi har funnet tallet 3? Saken er at innebygde PHP-funksjoner alltid arbeider mye raskere enn tilsvarende egenhåndskrevet kode.
I vårt tilfelle finnes det en funksjon in_array
som løser den gitte oppgaven, - og man bør
bruke nettopp denne funksjonen:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Moralen: før du løser en oppgave, sørg for å sjekke om det finnes en innebygd PHP-funksjon for å løse den.
I følgende kode finner en programmerer summen av elementene i arrayen. Optimaliser løsningen til denne programmereren.
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 følgende kode finner en programmerer produktet av elementene i arrayen. Optimaliser løsningen til denne programmereren:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>