Ισότητα ως προς την τιμή και τον τύπο στην PHP

Ας υποθέσουμε ότι θέλετε να συγκρίνετε με τέτοιο τρόπο, ώστε ο αριθμός σε εισαγωγικά να μην είναι ίσος με τον ίδιο αριθμό χωρίς εισαγωγικά. Με άλλα λόγια, θέλετε να συγκρίνετε με τέτοιο τρόπο, ώστε η σύγκριση να γίνεται όχι μόνο ως προς την τιμή, αλλά και ως προς τον τύπο δεδομένων. Για αυτό αντί για τον τελεστή == θα πρέπει να χρησιμοποιήσετε τον τελεστή ===. Η σύγκριση με έναν τέτοιο τελεστή ονομάζεται αυστηρή.

Δείτε το παράδειγμα:

php<?php
  if ('3' === 3) {
    echo '+++';
  } else {
    echo '---'; // αυτό θα εκτελεστεί, καθώς οι τιμές δεν είναι ίσες ως προς τον τύπο
  }
?>

Ενώ κατά τη σύγκριση δύο συμβολοσειρών '3' στην οθόνη θα εμφανιστεί '+++':

php<?php
  if ('3' === '3') {
    echo '+++'; // αυτό θα εκτελεστεί
  } else {
    echo '---';
  }
?>

Το ίδιο ισχύει και για τη σύγκριση αριθμών:

php<?php
  if (3 === 3) {
    echo '+++'; // αυτό θα εκτελεστεί
  } else {
    echo '---';
  }
?>

Η διαφορά μεταξύ των δύο τελεστών εκδηλώνεται ακριβώς όταν οι τιμές είναι ίδιες, αλλά ο τύπος δεδομένων είναι διαφορετικός. Σε άλλες περιπτώσεις αυτοί οι τελεστές λειτουργούν με τον ίδιο τρόπο. Για παράδειγμα, κατά τη σύγκριση διαφορετικών αριθμών, φυσικά, θα εμφανιστεί πλην:

php<?php
  if (2 === 3) {
    echo '+++';
  } else {
    echo '---'; // αυτό θα εκτελεστεί
  }
?>

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

Задание 1

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:

php<?php
  $test1 = '3';
  $test2 = '3';
    
  if ($test1 == $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 2

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:

php<?php
  $test1 = '3';
  $test2 = '3';
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 3

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:

php<?php
  $test1 = 3;
  $test2 = '3';
    
  if ($test1 == $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 4

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:

php<?php
  $test1 = 3;
  $test2 = '3';
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 5

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:

php<?php
  $test1 = 3;
  $test2 = 3;
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>