Icke-strikt jämförelse av booleska värden i PHP

I föregående exempel använde jag för jämförelse operatorn ===. I det här fallet jämfördes vår variabel för likhet med true både värde- och typmässigt.

I vår uppgift kan vi också använda operatorn ==. Om variabeln test alltid innehåller ett av värdena true eller false, så förändras ingenting:

php<?php
  $test = true; // här skriver vi antingen true eller false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Men om variabeln $test kan innehålla vilka värden som helst, blir allt myndigt mer komplicerat. I så fall, om variabeln innehåller ett icke-booleskt värde, kommer det värdet först att omvandlas till ett booleskt värde och först därefter jämföras.

Låt oss till exempel anta att vår variabel innehåller siffran 1. I det här fallet kommer den först att omvandlas till boolesk typ, det vill säga till true. Och sedan kommer jämförelsen att utföras:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // detta kommer att triggas, eftersom 1 == true är sant
  } else {
    echo '---';
  }
?>

Men till exempel kommer siffran 0 att omvandlas till false. Och vårt villkor kommer som ett resultat att vara falskt:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // detta kommer att triggas, eftersom 0 == true är INTE sant
  }
?>
Задание 1

Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:

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

Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:

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

Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:

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

Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:

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

Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:

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

Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:

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