Αδύνατο σημείο του return στην PHP
Αφού εκτελεστεί η εντολή return
- η συνάρτηση θα τελειώσει τη λειτουργία της. Δηλαδή:
μετά την εκτέλεση του return δεν θα εκτελεστεί άλλο
κώδικας.
Δείτε το παράδειγμα:
<?php
function func($num) {
return $num * $num;
echo '!'; // αυτός ο κώδικας δεν θα εκτελεστεί ποτέ
}
$res = func(3);
?>
Αυτό δεν σημαίνει ότι σε μια συνάρτηση πρέπει να υπάρχει
μόνο ένα return. Αλλά θα εκτελεστεί μόνο
ένα από αυτά.
Στο επόμενο παράδειγμα, ανάλογα με την τιμή
της παραμέτρου, θα εκτελεστεί είτε το πρώτο, είτε το δεύτερο
return:
<?php
function func($num) {
if ($num >= 0) {
return '+';
} else {
return '-';
}
}
echo func( 3); // θα εμφανίσει '+'
echo func(-3); // θα εμφανίσει '-'
?>
Τι θα εμφανιστεί στην οθόνη ως αποτέλεσμα της εκτέλεσης του παρακάτω κώδικα:
<?php
function func($num) {
return $num;
$res = $num * $num;
return $res;
}
echo func(3);
?>
Εξηγήστε γιατί.
Τι θα εμφανίσει κάθε ένα από τα echo ως αποτέλεσμα
της εκτέλεσης του παρακάτω κώδικα:
<?php
function func($num) {
if ($num <= 0) {
return abs($num);
} else {
return $num * $num;
}
}
echo func(10);
echo func(-5);
?>
Εξηγήστε γιατί.
Τι θα εμφανίσει κάθε ένα από τα echo ως αποτέλεσμα
της εκτέλεσης του παρακάτω κώδικα:
<?php
function func($num) {
if ($num <= 0) {
return abs($num);
}
return $num * $num;
}
echo func(10);
echo func(-5);
?>
Εξηγήστε γιατί.