⊗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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј