⊗ppSpOtRHO 73 of 83 menu

Optimering af gentagne tunge operationer i PHP

I den forrige lektion tog de gentagne funktionskald faktisk meget lidt tid, og vores optimering vil ikke spare ret meget. Men det vil blive meget værre, hvis vi flere gange kalder en "tung" funktion, som tager ret lang tid at udføre.

Lad os for eksempel sige, at vi har en funktion, som finder divisorer for et tal:

<?php function getDivisors($num) { $result = []; for ($i = 1; $i <= $num; $i++) { if ($num % $i == 0) { $result[] = $i; } } return $result; } ?>

Det er indlysende, at denne funktion er ret "tung". Derfor er det en dårlig idé at skrive kode som denne:

<?php $num = 123456; if (array_sum(getDivisors($num)) >= 10 and array_sum(getDivisors($num)) <= 100) { } else { } ?>

Det er selvfølgelig bedre at udføre den "tunge" operation én gang og gemme resultatet i en variabel, og derefter bruge denne variabel hvor det er nødvendigt:

<?php $num = 123456; $sum = array_sum(getDivisors($num)); if ($sum >= 10 and $sum <= 100) { } else { } ?>

Optimér koden nedenfor:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'korrekt'; } else { echo 'forkert'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis