⊗ppSpOtEI 76 of 83 menu

Оптимизација на непотребни поминувања на циклусот во PHP

Во следниот код некој програмер проверува, дали во низата се наоѓа бројот 3:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $exists = false; foreach ($arr as $elem) { if ($elem == 3) { $exists = true; } } var_dump($exists); ?>

Што не е во ред со неговото решение? Изгледа дека не се вршат непотребни операции во циклусот. Проблемот, сепак, е во тоа што откако ќе се утврди дека бројот 3 се наоѓа во низата - циклусот сепак продолжува да се врти до крајот на низата.

Најнерационално ќе биде ако бројот 3 се најде некаде на почетокот на низата, а самата низа е со должина од, да речеме, 1000 елементи. Ќе испадне дека се прават илјада бесполезни непотребни итерации на циклусот! Не е оптимално.

Да го оптимизираме кодот, запирајќи го циклусот навреме:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $exists = false; foreach ($arr as $elem) { if ($elem == 3) { $exists = true; break; } } var_dump($exists); ?>

Следниот код пресметува колку елементи од низата треба да се соберат, за збирот да стане поголем од 10. Извршете оптимизација:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $sum = 0; $i = 1; foreach ($arr as $elem) { $sum += $elem; if ($sum <= 10) { $i++; } } echo $i; ?>

Следниот код ги печати парните броеви од дадениот интервал. Извршете оптимизација:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0) { echo $i; } } ?>

Следниот код ги печати броевите кои се деливи истовремено со 2 и со 3. Извршете оптимизација:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј