Confronto non rigoroso dei valori booleani in PHP

Nell'esempio precedente ho utilizzato per il confronto l'operatore ===. In questo caso la nostra variabile veniva confrontata per uguaglianza con true sia per valore che per tipo.

Nel nostro problema possiamo utilizzare anche l'operatore ==. Se nella variabile test ci sarà sempre uno dei valori true o false, allora nulla cambierà:

php<?php
  $test = true; // qui scriviamo o true, o false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Ma se nella variabile $test possono finire valori qualsiasi, allora tutto diventa molto più complicato. In tal caso, se nella variabile ci sarà un valore non booleano, questo valore verrà prima convertito in booleano e solo dopodiché verrà confrontato.

Supponiamo, ad esempio, che nella nostra variabile ci sia il numero 1. In questo caso verrà prima convertito al tipo logico, cioè a true. E poi verrà eseguito il confronto:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // questo funzionerà, poiché 1 == true è corretto
  } else {
    echo '---';
  }
?>

Invece, ad esempio, il numero 0 si converte in false. E la nostra condizione di conseguenza risulterà falsa:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // questo funzionerà, poiché 0 == true NON è corretto
  }
?>
Задание 1

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

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