Μη Αυστηρή Σύγκριση Λογικών Τιμών στην PHP
Στο προηγούμενο παράδειγμα χρησιμοποίησα για τη σύγκριση
τον τελεστή ===. Σε αυτήν την περίπτωση, η μεταβλητή μας
συγκρινόταν για ισότητα με το true τόσο
ως προς την τιμή, όσο και ως προς τον τύπο.
Στο πρόβλημά μας μπορούμε να χρησιμοποιήσουμε και τον τελεστή
==. Εάν στη μεταβλητή test
υπάρχει πάντα μία από τις τιμές true
ή false, τότε τίποτα δεν αλλάζει:
<?php
$test = true; // εδώ γράφουμε είτε true, είτε false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Ωστόσο, εάν στη μεταβλητή $test μπορούν
να εισαχθούν οποιεσδήποτε τιμές, τότε όλα γίνονται
πολύ πιο περίπλοκα. Σε μια τέτοια περίπτωση, εάν στη μεταβλητή
δεν υπάρχει λογική τιμή, τότε αυτή η τιμή
θα μετατραπεί πρώτα σε boolean και μόνο
μετά θα συγκριθεί.
Ας υποθέσουμε, για παράδειγμα, ότι στη μεταβλητή μας υπάρχει
ο αριθμός 1. Σε αυτήν την περίπτωση, θα μετατραπεί πρώτα
σε λογικό τύπο, δηλαδή σε true. Και στη συνέχεια θα πραγματοποιηθεί η σύγκριση:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // αυτό θα εκτελεστεί, αφού 1 == true είναι σωστό
} else {
echo '---';
}
?>
Ωστόσο, για παράδειγμα, ο αριθμός 0 μετατρέπεται
σε false. Και η συνθήκη μας, ως αποτέλεσμα,
θα είναι ψευδής:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // αυτό θα εκτελεστεί, αφού 0 == true είναι ΛΑΘΟΣ
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>