Μη Αυστηρή Σύγκριση Λογικών Τιμών στην PHP

Στο προηγούμενο παράδειγμα χρησιμοποίησα για τη σύγκριση τον τελεστή ===. Σε αυτήν την περίπτωση, η μεταβλητή μας συγκρινόταν για ισότητα με το true τόσο ως προς την τιμή, όσο και ως προς τον τύπο.

Στο πρόβλημά μας μπορούμε να χρησιμοποιήσουμε και τον τελεστή ==. Εάν στη μεταβλητή test υπάρχει πάντα μία από τις τιμές true ή false, τότε τίποτα δεν αλλάζει:

php<?php
  $test = true; // εδώ γράφουμε είτε true, είτε false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Ωστόσο, εάν στη μεταβλητή $test μπορούν να εισαχθούν οποιεσδήποτε τιμές, τότε όλα γίνονται πολύ πιο περίπλοκα. Σε μια τέτοια περίπτωση, εάν στη μεταβλητή δεν υπάρχει λογική τιμή, τότε αυτή η τιμή θα μετατραπεί πρώτα σε boolean και μόνο μετά θα συγκριθεί.

Ας υποθέσουμε, για παράδειγμα, ότι στη μεταβλητή μας υπάρχει ο αριθμός 1. Σε αυτήν την περίπτωση, θα μετατραπεί πρώτα σε λογικό τύπο, δηλαδή σε true. Και στη συνέχεια θα πραγματοποιηθεί η σύγκριση:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // αυτό θα εκτελεστεί, αφού 1 == true είναι σωστό
  } else {
    echo '---';
  }
?>

Ωστόσο, για παράδειγμα, ο αριθμός 0 μετατρέπεται σε false. Και η συνθήκη μας, ως αποτέλεσμα, θα είναι ψευδής:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // αυτό θα εκτελεστεί, αφού 0 == true είναι ΛΑΘΟΣ
  }
?>
Задание 1

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

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

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

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

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

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

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

php<?php
  $test = 1;
    
  if ($test != true) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 5

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

php<?php
  $test = '';
    
  if ($test == false) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 6

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

php<?php
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>