⊗ppSpOtRHO 73 of 83 menu

Optimisation de la répétition d'opérations lourdes en PHP

Dans la leçon précédente, les appels répétés de fonctions prenaient en réalité très peu de temps et notre optimisation n'économisait pas énormément. Cependant, les choses seraient bien pires si nous devions effectuer plusieurs fois l'appel d'une fonction "lourde", qui s'exécute pendant un temps assez long.

Supposons, par exemple, que nous ayons une fonction qui trouve les diviseurs d'un nombre :

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

Il est évident que cette fonction est assez "lourde". Il serait donc une mauvaise idée d'écrire un code comme celui-ci :

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

Il serait bien mieux, bien sûr, d'exécuter l'opération "lourde" une seule fois et d'enregistrer le résultat dans une variable, puis d'utiliser cette variable aux endroits nécessaires :

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

Optimisez le code ci-dessous :

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'correct'; } else { echo 'incorrect'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser