Niestrogie porównywanie wartości logicznych w PHP

W poprzednim przykładzie użyłem do porównania operatora ===. W tym przypadku nasza zmienna była porównywana pod kątem równości z true zarówno pod względem wartości, jak i typu.

W naszym zadaniu można użyć również operatora ==. Jeśli w zmiennej test zawsze będzie jedna z wartości true lub false, to nic się nie zmieni:

php<?php
  $test = true; // piszemy tu albo true, albo false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Ale jeśli do zmiennej $test mogą trafiać dowolne wartości, wszystko staje się dużo bardziej skomplikowane. W takim przypadku, jeśli w zmiennej będzie wartość niebędąca wartością logiczną, to ta wartość zostanie najpierw przekonwertowana na typ logiczny i dopiero wtedy zostanie porównana.

Załóżmy na przykład, że w naszej zmiennej będzie liczba 1. W tym przypadku zostanie ona najpierw przekonwertowana na typ logiczny, czyli na true. A następnie zostanie wykonane porównanie:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // zadziała to, bo 1 == true jest prawdą
  } else {
    echo '---';
  }
?>

Z kolei na przykład liczba 0 zostanie przekonwertowana na false. I nasz warunek w rezultacie będzie fałszywy:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // zadziała to, bo 0 == true jest NIEprawdą
  }
?>
Задание 1

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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