⊗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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш