Nicht-strikter Vergleich von booleschen Werten in PHP
Im vorherigen Beispiel habe ich für den Vergleich
den Operator === verwendet. In diesem Fall wird unsere Variable
auf Gleichheit mit true sowohl
im Wert als auch im Typ verglichen.
In unserer Aufgabe kann auch der Operator
== verwendet werden. Wenn in der Variable test
immer einer der Werte true
oder false steht, dann ändert sich nichts:
<?php
$test = true; // hier schreiben wir entweder true oder false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Wenn jedoch in die Variable $test beliebige
Werte gelangen können, wird alles viel
komplizierter. In diesem Fall, wenn in der Variable
kein boolescher Wert steht, wird dieser Wert
zuerst in einen booleschen Wert umgewandelt und erst
dann verglichen.
Nehmen wir zum Beispiel an, in unserer Variable steht
die Zahl 1. In diesem Fall wird sie zuerst
in den booleschen Typ umgewandelt, also
in true. Und dann wird der Vergleich durchgeführt:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // das wird ausgeführt, da 1 == true wahr ist
} else {
echo '---';
}
?>
Die Zahl 0 hingegen wird
in false umgewandelt. Und unsere Bedingung wird dadurch
falsch:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // das wird ausgeführt, da 0 == true NICHT wahr ist
}
?>
Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>