⊗ppSpOtRHO 73 of 83 menu

Sunkios operacijos PHP optimizavimas

Ankstesnėje pamokoje pakartotiniai funkcijų iškvietimai iš tikrųjų užima labai mažai laiko ir mūsų optimizavimas sutaupys nelabai daug. Tačiau, viskas bus daug blogiau, jei kelis kartus skambinsime "sunkia" funkcija, kuri vykdoma pakankamai ilgai.

Tarkime, pavyzdžiui, kad turime funkciją, kuri randa skaičiaus daliklius:

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

Akivaizdu, kad ši funkcija yra pakankamai "sunki". Todėl bloga idėja būtų parašyti tokį kodą:

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

Žinoma, geriau atlikti "sunkų" operaciją vieną kartą ir rezultatą įrašyti į kintamąjį, o tada naudoti tą kintamąjį reikiamose vietose:

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

Optimizuokite žemiau pateiktą kodą:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'teisinga'; } else { echo 'neteisinga'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti