Nie-strikte vergelyking van logiese waardes in PHP

In die vorige voorbeeld het ek die vergelykingsoperateur === gebruik. In daardie geval word ons veranderlike vergelyk met gelykheid aan true soos volgens waarde, sowel as volgens tipe.

In ons probleem kan ons ook die operateur == gebruik. As die veranderlike test altyd een van die waardes true of false sal wees, sal niks verander nie:

php<?php
  $test = true; // skryf hier of true, of false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Maar as enige waardes in die veranderlike $test kan beland, raak alles baie meer ingewikkeld. In so 'n geval, as die veranderlike nie 'n Booleaanse waarde sal hê nie, sal daardie waarde eers na Booleaans omgeskakel word en slegs daarna sal dit vergelyk word.

Laat ons byvoorbeeld sê die veranderlike sal die getal 1 bevat. In hierdie geval sal dit eers na die logiese tipe omgeskakel word, dit wil sê na true. En dan sal die vergelyking uitgevoer word:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // dit sal werk, want 1 == true - dit is korrek
  } else {
    echo '---';
  }
?>

Maar byvoorbeeld, die getal 0 sal omgeskakel word na false. En ons voorwaarde sal as gevolg vals wees:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // dit sal werk, want 0 == true - dit is NIE korrek nie
  }
?>
Задание 1

Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:

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