Arvo- ja tyyppieriarvoisuus PHP:ssä

Operaattorin != lisäksi on olemassa myös operaattori !==, joka ottaa huomioon tyypin vertailussa. Tarkastellaan niiden eroja esimerkkien avulla.

Oletetaan, että operaattorilla != verrataan kahta lukua 3. Tämä operaattori vertailee arvoja sen perusteella, että ne EIVÄT ole samoja. Koska arvomme ovat yhtä suuret, näytölle tulostuu '-':

php<?php
  if (3 != 3) {
    echo '+++';
  } else {
    echo '---'; // suoritetaan tämä, koska arvot ovat samat
  }
?>

Oletetaan nyt, että toinen arvoistamme on lainausmerkeissä. Tässä tapauksessa operaattori != katsoo niiden silti olevan samoja (koska arvot täsmäävät, eikä tyypillä ole merkitystä tälle operaattorille) ja tulostaa jälleen '-':

php<?php
  if ('3' != 3) {
    echo '+++';
  } else {
    echo '---'; // suoritetaan tämä, koska arvot ovat samat
  }
?>

Vertailkaamme nyt kahta lukua 3 operaattorilla !==. Se pitää niitä myös samoina ja tulostaa '-':

php<?php
  if (3 !== 3) {
    echo '+++';
  } else {
    echo '---'; // suoritetaan tämä, koska arvot ovat samat
  }
?>

Mutta jos nyt otamme toisen kolmikoista lainausmerkkeihin, operaattori !== pitää kolmikoitamme erilaisina, sillä vaikka niiden arvot täsmäävätkin, niillä on eri tyyppi:

php<?php
  if ('3' !== 3) {
    echo '+++'; // suoritetaan tämä, koska arvot eivät ole samoja
  } else {
    echo '---';
  }
?>
Задание 1

Määritä, mitä tulostetaan näytölle ajamatta koodia:

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

Määritä, mitä tulostetaan näytölle ajamatta koodia:

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

Määritä, mitä tulostetaan näytölle ajamatta koodia:

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

Määritä, mitä tulostetaan näytölle ajamatta koodia:

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

Määritä, mitä tulostetaan näytölle ajamatta koodia:

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