Optimizimi i Operacioneve Ciklike në PHP
Edhe një operacion i lehtë, i përsëritur shumë herë në një cikël, mund të konsumojë shumë burime.
Le të shohim një shembull. Le të themi se kemi një array të caktuar:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
?>
Le të gjejmë mesataren e elementeve të këtij array. Për këtë, duhet të gjejmë shumën e elementeve dhe ta ndajmë atë me numrin e tyre. Le të themi se një programues tashmë e ka zgjidhur këtë detyrë në mënyrën e mëposhtme:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem / count($arr);
}
echo $sum;
?>
Le të shqyrtojmë problemet e këtij zgjidhjeje. Nga ana teknike, kodi funksionon saktë dhe jep përgjigjen e saktë. Çështja është se matematikisht është e saktë të ndash të gjithë shumën me numrin e elementeve, ashtu siç është e saktë të ndash secilin prej termave veç e veç me numrin e elementeve.
Megjithatë, lind një problem tjetër. Çështja është se ne do të kryejmë pjesëtim aq herë sa ka elemente në array-in tonë. Dhe del se ne bëjmë një numër të madh operacionesh të tepërta, sepse pjesëtimin mund ta kishim kryer në fund - një herë, duke e ndarë të gjithë shumën e gjetur.
Le të optimizojmë kodin tonë:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum / count($arr);
?>
Optimizoni kodin e dhënë më poshtë:
<?php
for ($i = 1; $i <= 31; $i++) {
if ($i === date('d')) {
echo "<b>$i</b><br>";
}
if ($i !== date('d')) {
echo "$i<br>";
}
}
?>