⊗ppSpOtRHO 73 of 83 menu

PHP-s raskete operatsioonide kordamise optimeerimine

Eelmises õppetükis võtsid funktsioonide korduvad väljakutsed tegelikult väga vähe aega ja meie optimeerimine ei säästa eriti palju. Kuid olukord muutub palju hullemaks, kui teeme mitu korda väljakutse "raskele" funktsioonile, mis võtab täitmiseks piisavalt kaua aega.

Oletame näiteks, et meil on funktsioon, mis leiab arvu jagajad:

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

Ilmselgelt on see funktsioon piisavalt "raske". Seetõttu oleks halb mõte kirjutada selline kood:

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

Muidugi on parem teha "raske" operatsioon üks kord ja kirjutada tulemus muutujasse, seejärel kasutada seda muutujat vajalikes kohtades:

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

Optimeerige allolev kood:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'õige'; } else { echo 'vale'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu