Nestrihé porovnávanie logických hodnôt v PHP

V predchádzajúcom príklade som použil na porovnanie operátor ===. V tomto prípade sa naša premenná porovnávala na rovnosť true ako podľa hodnoty, tak aj podľa typu.

V našej úlohe sa dá použiť aj operátor ==. Ak bude v premennej test vždy jedna z hodnôt true alebo false, tak sa nič nezmení:

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

No ak do premennej $test môžu pripadnúť akékoľvek hodnoty, tak všetko sa stáva oveľa zložitejšie. V takom prípade, ak v premennej bude nie logická hodnota, tak táto hodnota sa najprv prevedie na logický typ a až potom sa bude porovnávať.

Povedzme napríklad, že v našej premennej bude číslo 1. V tomto prípade sa najprv prevedie na logický typ, teda na true. A potom sa vykoná porovnanie:

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

No napríklad číslo 0 sa prevedie na false. A naša podmienka vo výsledku bude nepravdivá:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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