⊗ppPmCdBNM 100 of 447 menu

Η Προαιρετικότητα του break στην PHP

Η εντολή break είναι προαιρετική. Χωρίς αυτήν, ωστόσο, η συμπεριφορά των μπλοκ case θα είναι απρόσμενη. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε τον ακόλουθο κώδικα:

<?php $num = 1; switch ($num) { case 1: echo 1; break; case 2: echo 2; break; case 3: echo 3; break; } ?>

Ας αφαιρέσουμε όλες τις break, και στη μεταβλητή $num ας γράψουμε αρχικά τον αριθμό 3.

Μέχρι εδώ όλα θα λειτουργούν όπως και πριν:

<?php $num = 3; // ας είναι ο αριθμός εδώ 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Μετά την εκτέλεση ο κώδικας θα εμφανίσει 3 - όλα καλά ?>

Ας γράψουμε τώρα στη μεταβλητή $num τον αριθμό 2. Σε αυτήν την περίπτωση, όπως αναμένεται, θα εκτελεστεί το case 2, και στη συνέχεια απροσδόκητα και το case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Μετά την εκτέλεση ο κώδικας θα εμφανίσει 2, και στη συνέχεια 3 ?>

Εάν, ωστόσο, γράψουμε στη μεταβλητή $num τον αριθμό 1, τότε θα εκτελεστούν όλες οι κατασκευές case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Μετά την εκτέλεση ο κώδικας θα εμφανίσει 1, στη συνέχεια 2, και μετά 3 ?>

Δηλαδή, συμβαίνει ότι στην απουσία break μετά την εκτέλεση του προβλεπόμενου case, εκτελούνται και όλα τα case κάτω από αυτό. Μερικές φορές αυτό το χαρακτηριστικό χρησιμοποιείται, στην επίλυση προβλημάτων.

Στο επόμενο παράδειγμα, εάν η μεταβλητή $num έχει τιμή 1 ή 2, τότε στη μεταβλητή $res θα γραφεί 'a'. Εάν, ωστόσο, η μεταβλητή $num έχει τιμή 3, τότε στη μεταβλητή $res θα γραφεί 'b':

<?php $num = 1; switch ($num) { case 1: case 2: $res = 'a'; break; case 3: $res = 'b'; break; } echo $res; ?>

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

Είναι πιο προφανές να λυθεί ένα τέτοιο πρόβλημα με χρήση if:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη