Perbandingan Tidak Ketat Nilai Boolean di PHP

Dalam contoh sebelumnya saya menggunakan operator === untuk perbandingan. Dalam kasus ini, variabel kita dibandingkan untuk kesetaraan dengan true baik dari nilai maupun tipenya.

Dalam tugas kita, operator == juga dapat digunakan. Jika dalam variabel test selalu berisi salah satu nilai true atau false, maka tidak ada yang akan berubah:

php<?php
  $test = true; // di sini kita tulis true atau false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Namun, jika variabel $test dapat berisi nilai apa saja, maka segalanya menjadi jauh lebih rumit. Dalam kasus seperti itu, jika variabel berisi nilai non-boolean, maka nilai tersebut pertama-tama akan dikonversi ke boolean dan baru kemudian akan dibandingkan.

Misalnya, anggap variabel kita berisi angka 1. Dalam kasus ini, angka tersebut pertama-tama akan dikonversi ke tipe boolean, yaitu menjadi true. Dan kemudian perbandingan akan dilakukan:

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // ini yang akan dijalankan, karena 1 == true adalah benar
  } else {
    echo '---';
  }
?>

Sebagai contoh lain, angka 0 akan dikonversi menjadi false. Dan kondisi kita pada akhirnya akan menjadi salah:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // ini yang akan dijalankan, karena 0 == true adalah TIDAK benar
  }
?>
Задание 1

Tanpa menjalankan kode, tentukan apa yang akan ditampilkan pada layar:

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

Tanpa menjalankan kode, tentukan apa yang akan ditampilkan pada layar:

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

Tanpa menjalankan kode, tentukan apa yang akan ditampilkan pada layar:

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

Tanpa menjalankan kode, tentukan apa yang akan ditampilkan pada layar:

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

Tanpa menjalankan kode, tentukan apa yang akan ditampilkan pada layar:

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

Tanpa menjalankan kode, tentukan apa yang akan ditampilkan pada layar:

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