⊗ppSpOtEI 76 of 83 menu

Ottimizzazione dei passaggi superflui del ciclo in PHP

Nel codice seguente, un programmatore verifica se nell'array è presente il numero 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); ?>

Cosa non va nella sua soluzione? Sembra che non vengano eseguite operazioni superflue nel ciclo. Il problema, tuttavia, è che dopo che è stato determinato che il numero 3 è presente nell'array - il ciclo continua comunque a girare fino alla fine dell'array.

La situazione più inefficiente si verifica se il numero 3 viene trovato da qualche parte all'inizio dell'array, mentre l'array stesso ha una lunghezza, diciamo, di 1000 elementi. Risulterebbero mille iterazioni inutili e superflue del ciclo! Non ottimale.

Ottimizziamo il codice, fermando il ciclo al momento giusto:

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

Il codice seguente calcola quanti elementi dell'array devono essere sommati affinché la somma superi 10. Esegui l'ottimizzazione:

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

Il codice seguente stampa i numeri pari da un intervallo dato. Esegui l'ottimizzazione:

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

Il codice seguente stampa i numeri divisibili sia per 2 che per 3. Esegui l'ottimizzazione:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta