Ei-tiukka loogisten arvojen vertailu PHP:ssä

Edellisessä esimerkissä käytin vertailuun operaattoria ===. Tässä tapauksessa muuttujamme verrattiin yhtäsuuruuteen true:n kanssa sekä arvon että tyypin suhteen.

Tehtävässämme voidaan käyttää myös operaattoria ==. Jos muuttujassa test on aina joko arvo true tai false, niin mikään ei muutu:

php<?php
  $test = true; // kirjoitetaan tähän joko true tai false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Mutta jos muuttujaan $test voi päästä mitä tahansa arvoja, niin kaikki muuttuu paljon monimutkaisemmaksi. Tällöin, jos muuttujassa ei ole loogista arvoa, niin tämä arvo muunnetaan ensin loogiseksi ja vasta sitten verrataan.

Oletetaan esimerkiksi, että muuttujassamme on luku 1. Tässä tapauksessa se muunnetaan ensin loogiseksi tyypiksi, eli arvoksi true. Ja sitten suoritetaan vertailu:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // toimii tämä, koska 1 == true on totta
  } else {
    echo '---';
  }
?>

Mutta esimerkiksi luku 0 muunnetaan arvoksi false. Ja ehtomme on tällöin epätosi:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // toimii tämä, koska 0 == true on EItosi
  }
?>
Задание 1

Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:

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

Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:

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

Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:

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

Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:

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

Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:

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

Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:

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