Niet-strikte vergelijking van booleaanse waarden in PHP
In het vorige voorbeeld gebruikte ik voor de vergelijking
de operator ===. In dit geval werd onze variabele
vergeleken op gelijkheid met true
zowel qua waarde als qua type.
Voor ons probleem kunnen we ook de operator
== gebruiken. Als in de variabele test
altijd één van de waarden true
of false staat, dan verandert er niets:
<?php
$test = true; // hier schrijven we of true, of false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Maar als in de variabele $test
elke willekeurige waarde kan voorkomen, dan wordt alles
veel ingewikkelder. In dat geval, als er in de variabele
geen booleaanse waarde staat, dan zal deze waarde
eerst worden omgezet naar een booleaanse waarde en pas
daarna vergeleken worden.
Stel, er staat bijvoorbeeld het getal
1 in onze variabele. In dat geval wordt het eerst
omgezet naar het booleaanse type, dat wil zeggen
naar true. En daarna wordt de vergelijking uitgevoerd:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // dit wordt uitgevoerd, omdat 1 == true correct is
} else {
echo '---';
}
?>
Het getal 0 daarentegen, wordt omgezet
naar false. En onze voorwaarde zal als gevolg
onwaar zijn:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // dit wordt uitgevoerd, omdat 0 == true NIET correct is
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>