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

Ας εξετάσουμε τα προβλήματα μιας τέτοιας λύσης. Τεχνικά, ο κώδικας λειτουργεί σωστά και δίνει σωστή απάντηση. Το γεγονός είναι ότι μαθηματικά είναι σωστό τόσο να διαιρέσουμε ολόκληρο το άθροισμα με την ποσότητα, όσο και να διαιρέσουμε κάθε μία από τις προσθετέες με την ποσότητα.

Ωστόσο, προκύπτει ένα άλλο πρόβλημα. Το γεγονός είναι ότι θα εκτελέσουμε τη διαίρεση τόσες φορές όσα είναι τα στοιχεία στον πίνακά μας. Και αποδεικνύεται ότι κάνουμε μεγάλο αριθμό από περιττές λειτουργίες, αφού η διαίρεση θα μπορούσε να γίνει στο τέλος - μία φορά, διαιρώντας ολόκληρο το άθροισμα που βρέθηκε.

Ας βελτιστοποιήσουμε τον κώδικά μας:

<?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štinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη