Optimeerimise sisseehitatud funktsioonide abil PHP-s
Oletame, et üks programmeerija kontrollib, kas
massiivis on number 5:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // väljume tsüklist, et ei käiks tarbetult ringi
}
}
var_dump($exists);
?>
Ma väidan, et selle koodiga on midagi valesti. Mis siis viga on, me ju väljume tsüklist pärast seda, kui leidsime numbri 3? Asi on selles, et PHP sisseehitatud funktsioonid töötavad alati oluliselt kiiremini kui sarnane isekirjutatud kood.
Meie puhul on olemas funktsioon in_array,
mis lahendab püstitatud ülesande - ja kasutada
tuleks just seda funktsiooni:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Moraal: enne ülesande lahendamist kontrollige tingimata, kas selle lahendamiseks pole PHP-s sisseehitatud funktsiooni.
Järgmises koodis leiab üks programmeerija massiivi elementide summat. Optimeerige selle programmeerija lahendus.
Siin on kood:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
Järgmises koodis leiab üks programmeerija massiivi elementide korrutise. Optimeerige selle programmeerija lahendus:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>