⊗ppSpOtLO 74 of 83 menu

PHP да циклик операцияларини оптимизациялаш

Ҳатто энг енгил операция хам, такрорланган циклда кўп марта такрорланса, кўп ресурсларни сарфлаши мумкин.

Келгила, мисолда кўрайлик. Бизда маълум бир массив берилган бўлсин:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; ?>

Келгила, шу массив элементларининг ўртача қийматини топайлик. Бунинг учун элементлар йиғиндисини топиш ва уни сонига бўлиш керак. Маълум бир программист бу масалани қуйидагича ечган бўлсин:

<?php $sum = 0; foreach ($arr as $elem) { $sum += $elem / count($arr); } echo $sum; ?>

Келгила, бундай ечимнинг муаммоларини кўриб чиқайлик. Техник жиҳатдан код тўғри ишлайди ва тўғри жавоб беради. Гап шундаки, математик жиҳатдан ҳам йиғиндини сонга бўлиш, ҳам ҳар бир қўшилувчини сонга бўлиш тўғри.

Бироқ, бошқа бир муаммо пайдо бўлади. Гап шундаки, биз бўлиш амалини массивдаги элементлар сонча такрорлаймиз. Ва маълум бўладики, биз кўп миқдорда ортиқча амалларни бажарамиз, чунки бўлишни oxирида - бир марта, топилган бутун йиғиндини бўлиб бажариш мумкин эди.

Келгила, кодимизни оптимизация қилайлик:

<?php $sum = 0; foreach ($arr as $elem) { $sum += $elem; } echo $sum / count($arr); ?>

Қуйида берилган кодни оптимизацияланг:

<?php for ($i = 1; $i <= 31; $i++) { if ($i === date('d')) { echo "<b>$i</b><br>"; } if ($i !== date('d')) { echo "$i<br>"; } } ?>
Ўзбек
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
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш