⊗ppSpOtRHO 73 of 83 menu

Оптимизација на повторување на тешки операции во PHP

Во претходната лекција, повторните повикувања на функции всушност заземаат многу малку време и нашата оптимизација нема да заштеди многу. Сепак, сè ќе биде многу полошо ако неколку пати ја повикаме "тешката" функција, која се извршува прилично долго време.

Нека, на пример, имаме функција која ги наоѓа делителите на бројот:

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

Очигледно е дека оваа функција е прилично "тешка". Затоа лоша идеја е да се напише ваков код:

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

Подобро е, се разбира, "тешката" операција да се изврши само еднаш и резултатот да се запише во променлива, а потоа да се користи таа променлива на потребните места:

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

Оптимизирајте го кодот прикажан подолу:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'точно'; } else { echo 'неточно'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј