Gelijkheid in waarde en type in PHP
Stel dat u zo wilt vergelijken dat het getal
tussen aanhalingstekens niet gelijk is aan hetzelfde getal
zonder aanhalingstekens. Met andere woorden, u wilt
zo vergelijken dat de vergelijking niet alleen
op waarde, maar ook op gegevenstype gebaseerd is. Hiervoor
moet u in plaats van de operator == de
operator === gebruiken. Vergelijking met een dergelijke operator
wordt strikt genoemd.
Zie het voorbeeld:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // dit wordt uitgevoerd, omdat de waarden niet gelijk zijn in type
}
?>
Maar bij het vergelijken van twee strings '3'
wordt '+++' op het scherm weergegeven:
<?php
if ('3' === '3') {
echo '+++'; // dit wordt uitgevoerd
} else {
echo '---';
}
?>
Hetzelfde geldt voor het vergelijken van getallen:
<?php
if (3 === 3) {
echo '+++'; // dit wordt uitgevoerd
} else {
echo '---';
}
?>
Het verschil tussen de twee operators komt naar voren precies wanneer de waarden hetzelfde zijn, maar het gegevenstype verschilt. In andere gevallen werken deze operators hetzelfde. Bijvoorbeeld, bij het vergelijken van verschillende getallen, zal uiteraard '---' worden weergegeven:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // dit wordt uitgevoerd
}
?>
Tegenwoordig is het in PHP algemeen geaccepteerd om overal strikte vergelijking te gebruiken. Men vindt dat de code in dat geval minder gevoelig is voor fouten.
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>