Optimering van Siklus Operasies in PHP
Selfs 'n ligte operasie, herhaal veelvuldig in 'n lus, kan baie hulpbronne verbruik.
Kom ons kyk na 'n voorbeeld. Laat ons 'n sekere array hê:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
?>
Kom ons vind die gemiddelde van die elemente van hierdie array. Om dit te doen, moet jy die som van die elemente vind en dit deur die hoeveelheid deel. Laat 'n sekere programmeerder hierdie taak reeds opgelos het soos volg:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem / count($arr);
}
echo $sum;
?>
Kom ons kyk na die probleme van so 'n oplossing. Tegnies werk die kode korrek en gee die korrekte antwoord. Die feit is dat dit wiskundig korrek is om die hele som deur die hoeveelheid te deel, sowel as om elke term deur die hoeveelheid te deel.
Daar ontstaan egter 'n ander probleem. Die feit is dat ons deling sal uitvoer soveel keer as wat daar elemente in ons array is. En dit blyk dat ons 'n groot hoeveelheid oorbodige bewerkings doen, aangesien deling aan die einde gedoen kon word - een keer, deur die hele gevonde som te deel.
Kom ons optimaliseer ons kode:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum / count($arr);
?>
Optimaliseer die onderstaande kode:
<?php
for ($i = 1; $i <= 31; $i++) {
if ($i === date('d')) {
echo "<b>$i</b><br>";
}
if ($i !== date('d')) {
echo "$i<br>";
}
}
?>