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)
?>