Βρόχος και return στην PHP
Ας υποθέσουμε ότι έχουμε μια συνάρτηση που επιστρέφει το άθροισμα
αριθμών από 1 έως 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // θα εμφανίσει 15
?>
Ας υποθέσουμε τώρα ότι τοποθετούμε το return
μέσα στον βρόχο, έτσι:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
Σε αυτή την περίπτωση, ο βρόχος θα εκτελεστεί μόνο μία
επανάληψη και θα συμβεί αυτόματη έξοδος
από τη συνάρτηση (και ταυτόχρονα από τον βρόχο). Και σε μία
επανάληψη του βρόχου στη μεταβλητή $sum θα βρίσκεται
μόνο ο αριθμός 1, και όχι το συνολικό άθροισμα.
Τι θα εμφανιστεί στην οθόνη ως αποτέλεσμα εκτέλεσης του παρακάτω κώδικα:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Εξηγήστε γιατί.
Τι ήθελε να κάνει ο συγγραφέας αυτού του κώδικα; Διορθώστε το λάθος του συγγραφέα.