Ισότητα ως προς την τιμή και τον τύπο στην PHP
Ας υποθέσουμε ότι θέλετε να συγκρίνετε με τέτοιο τρόπο, ώστε ο αριθμός
σε εισαγωγικά να μην είναι ίσος με τον ίδιο αριθμό
χωρίς εισαγωγικά. Με άλλα λόγια, θέλετε
να συγκρίνετε με τέτοιο τρόπο, ώστε η σύγκριση να γίνεται όχι μόνο
ως προς την τιμή, αλλά και ως προς τον τύπο δεδομένων. Για αυτό
αντί για τον τελεστή == θα πρέπει να χρησιμοποιήσετε
τον τελεστή ===. Η σύγκριση με έναν τέτοιο τελεστή
ονομάζεται αυστηρή.
Δείτε το παράδειγμα:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // αυτό θα εκτελεστεί, καθώς οι τιμές δεν είναι ίσες ως προς τον τύπο
}
?>
Ενώ κατά τη σύγκριση δύο συμβολοσειρών '3'
στην οθόνη θα εμφανιστεί '+++':
<?php
if ('3' === '3') {
echo '+++'; // αυτό θα εκτελεστεί
} else {
echo '---';
}
?>
Το ίδιο ισχύει και για τη σύγκριση αριθμών:
<?php
if (3 === 3) {
echo '+++'; // αυτό θα εκτελεστεί
} else {
echo '---';
}
?>
Η διαφορά μεταξύ των δύο τελεστών εκδηλώνεται ακριβώς όταν οι τιμές είναι ίδιες, αλλά ο τύπος δεδομένων είναι διαφορετικός. Σε άλλες περιπτώσεις αυτοί οι τελεστές λειτουργούν με τον ίδιο τρόπο. Για παράδειγμα, κατά τη σύγκριση διαφορετικών αριθμών, φυσικά, θα εμφανιστεί πλην:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // αυτό θα εκτελεστεί
}
?>
Στην PHP στις μέρες μας, είναι γενικά αποδεκτό να χρησιμοποιείτε παντού αυστηρή σύγκριση. Θεωρείται ότι σε αυτήν την περίπτωση ο κώδικας είναι λιγότερο επιρρεπής σε σφάλματα.
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>