⊗ppSpOtRHO 73 of 83 menu

Optymalizacja powtarzania ciężkich operacji w PHP

W poprzedniej lekcji powtórne wywołania funkcji w rzeczywistości zajmują bardzo mało czasu i nasza optymalizacja zaoszczędzi nie bardzo wiele. Jednakże, wszystko będzie znacznie gorzej, jeśli będziemy kilka razy wykonywać wywołanie "ciężkiej" funkcji, która wykonuje się dość długi czas.

Załóżmy, na przykład, że mamy funkcję, która znajduje dzielniki liczby:

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

Oczywiście, że ta funkcja jest dość "ciężka". Dlatego złym pomysłem będzie napisanie takiego kodu:

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

Lepiej, oczywiście, wykonać "ciężką" operację raz i wynik zapisać w zmiennej, a potem używać tej zmiennej w potrzebnych miejscach:

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

Zoptymalizuj podany poniżej kod:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'prawda'; } else { echo 'nieprawda'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć