⊗ppSpOtEI 76 of 83 menu

Optimering av unødvendige løkkegjennomganger i PHP

I følgende kode sjekker en programmerer om tallet 3 finnes i arrayet:

<?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); ?>

Hva er galt med løsningen hans? Det ser ut til at ingen unødvendige operasjoner gjøres i løkken. Problemet, likevel, er at etter det er avgjort at tallet 3 finnes i arrayet - fortsetter løkken å gå til slutten av arrayet.

Mest irrasjonelt vil det være hvis tallet 3 blir funnet et sted i begynnelsen av arrayet, mens selve arrayet har en lengde på, for eksempel, 1000 elementer. Da vil det bli tusen ubrukelige, unødvendige iterasjoner av løkken! Ikke optimalt.

La oss optimalisere koden ved å stoppe løkken i tide:

<?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); ?>

Følgende kode beregner hvor mange elementer i arrayet som må legges sammen for at summen skal bli større enn 10. Utfør optimalisering:

<?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; ?>

Følgende kode skriver ut partall fra et gitt intervall. Utfør optimalisering:

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

Følgende kode skriver ut tall som er delelige samtidig på 2 og på 3. Utfør optimalisering:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis