Nestrikové porovnávání logických hodnot v PHP

V předchozím příkladu jsem pro porovnání použil operátor ===. V tomto případě se naše proměnná porovnávala na rovnost true jak podle hodnoty, tak podle typu.

V našem úkolu lze použít i operátor ==. Pokud bude v proměnné test vždy jedna z hodnot true nebo false, nic se nezmění:

php<?php
  $test = true; // zde píšeme either true, nebo false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Ale pokud do proměnné $test mohou spadnout libovolné hodnoty, vše se stává mnohem složitějším. V takovém případě, pokud v proměnné bude nelogická hodnota, tato hodnota bude nejprve převedena na logickou a teprve poté bude porovnána.

Nechť například v naší proměnné bude číslo 1. V tomto případě se nejprve převede na logický typ, tedy na true. A poté bude provedeno porovnání:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // spustí se toto, protože 1 == true je pravda
  } else {
    echo '---';
  }
?>

Ale například číslo 0 se převede na false. A naše podmínka bude ve výsledku nepravdivá:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // spustí se toto, protože 0 == true je NEpravda
  }
?>
Задание 1

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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