Arvon ja tyypin yhtäläisyys PHP:ssä

Oletetaan, että haluat vertailla siten, että numero lainausmerkeissä ei ole yhtä suuri kuin sama numero ilman lainausmerkkejä. Toisin sanoen haluat vertailla siten, että vertailu ei ole pelkästään arvon perusteella, vaan myös datatyypin perusteella. Tätä varten operaattorin == sijasta tulisi käyttää operaattoria ===. Vertailua tällaisella operaattorilla kutsutaan tiukaksi.

Katso esimerkki:

php<?php
  if ('3' === 3) {
    echo '+++';
  } else {
    echo '---'; // toimii tämä, koska arvot eivät ole yhtä suuria tyypin suhteen
  }
?>

Mutta kun verrataan kahta merkkijonoa '3' näytölle tulostuu '+++':

php<?php
  if ('3' === '3') {
    echo '+++'; // toimii tämä
  } else {
    echo '---';
  }
?>

Sama koskee numeroiden vertailua:

php<?php
  if (3 === 3) {
    echo '+++'; // toimii tämä
  } else {
    echo '---';
  }
?>

Ero kahden operaattorin välillä ilmenee tarkalleen silloin, kun arvot ovat samat, mutta datatyypit erilaiset. Muissa tapauksissa nämä operaattorit toimivat samalla tavalla. Esimerkiksi eri numeroiden vertailussa tietysti tulostuu miinus:

php<?php
  if (2 === 3) {
    echo '+++';
  } else {
    echo '---'; // toimii tämä
  }
?>

Nykyään PHP:ssä on yleisesti hyväksyttyä käyttää kaikkialla tiukkaa vertailua. Väitetään, että tällöin koodi on vähemmän alttiina virheille.

Задание 1

Määritä käyttämättä koodia, mitä tulostetaan näytölle:

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

Määritä käyttämättä koodia, mitä tulostetaan näytölle:

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

Määritä käyttämättä koodia, mitä tulostetaan näytölle:

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

Määritä käyttämättä koodia, mitä tulostetaan näytölle:

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

Määritä käyttämättä koodia, mitä tulostetaan näytölle:

php<?php
  $test1 = 3;
  $test2 = 3;
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>