Booleans
Dies ist der einfachste Typ. Ein bool drückt einen
Wahrheitswert aus, der entweder true
(wahr) oder false
(falsch) sein
kann.
Syntax
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";
}
?>
Converting to boolean
Um einen Wert explizit zu bool zu konvertieren, wird
(bool)
oder (boolean)
zum casten
verwendet. Dies ist jedoch in den meisten Fällen nicht nötig, da ein Wert
automatisch konvertiert wird wenn, eine Funktion oder Kontrollstruktur ein
bool-Argument verlangt.
Siehe auch Typumwandlungen.
Bei der Konvertierung zum Typ bool gelten die folgenden
Werte als false
:
-
Der Boolean
false
selbst - Der Integer 0 (zero)
- Die Gleitkommazahlen 0.0 und -0.0 (zero)
- Der leere String, und der String "0"
- Ein Array ohne Elemente
- Der spezielle Typ NULL (inklusive nicht gesetzter Variablen)
- SimpleXML-Objekte, die aus attributlosen leeren Elementen erzeugt wurden, d. h. aus Elementen, die weder Kinder noch Attribute haben.
Jeder andere Wert wird als true
angenommen (inklusive jeglicher
Ressourcen-Werte 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)
?>