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
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
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
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
if ('3' !== 3) {
echo '+++'; // suoritetaan tämä, koska arvot eivät ole samoja
} else {
echo '---';
}
?>
Määritä, mitä tulostetaan näytölle ajamatta koodia:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Määritä, mitä tulostetaan näytölle ajamatta koodia:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Määritä, mitä tulostetaan näytölle ajamatta koodia:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Määritä, mitä tulostetaan näytölle ajamatta koodia:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Määritä, mitä tulostetaan näytölle ajamatta koodia:
<?php
$test1 = 3;
$test2 = 2;
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>