Der Typ bool kann nur zwei Werte annehmen und wird verwendet,
um einen Wahrheitswert auszudrücken; er kann entweder true
(wahr) oder
false
(falsch) sein.
Ein bool-Wert wird über die Konstanten true
und false
spezifiziert, Groß- und Kleinschreibung ist dabei nicht von Bedeutung.
<?php
$foo = True; // weist $foo den Wert TRUE zu
?>
Normalerweise wird ein bool von einem Operator zurückgegeben und an eine Kontrollstruktur weitergegeben.
<?php
// == ist ein Operator, der auf Gleichheit prüft
// und ein boolean-Ergebnis zurückgibt
if ($action == "show_version") {
echo "Die Version ist 1.23";
}
// die Angabe von '== TRUE' ist nicht nötig...
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// ... weil folgendes genau dieselbe Bedeutung hat:
if ($show_separators) {
echo "<hr>\n";
}
?>
Um einen Wert explizit in bool zu konvertieren, kann der
(bool)
-Cast verwendet werden. Im Allgemeinen ist dies
nicht notwendig, da ein Wert, wenn er in einem logischen Kontext verwendet
wird, automatisch als ein Wert vom Typ bool interpretiert
wird. Für weitere Informationen siehe die Seite
Typumwandlungen.
Bei der Konvertierung zum Typ bool gelten die folgenden
Werte als false
:
false
selbst
0
(null)
0.0
und -0.0
(null)
""
und der
String "0"
Jeder andere Wert wird als true
angenommen (inklusive
Ressourcen und
NAN
).
-1
gilt als true
wie jeder andere Integerwert
ungleich 0 (egal ob positiv oder negativ)!
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) "0"); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>