Booleans

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.

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 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:

  • Der Booleanfalse selbst
  • Der Integer0 (null)
  • Die Gleitkommazahlen0.0 und -0.0 (null)
  • Der leere String"" und der String"0"
  • Ein Array ohne Elemente
  • Der Einheitstyp NULL (inklusive nicht gesetzter Variablen)
  • Interne Objekte, die ihr Casting-Verhalten auf bool überladen, zum Beispiel: SimpleXML-Objekte, die aus leeren Elementen ohne Attribute erstellt werden.

Jeder andere Wert wird als true angenommen (inklusive Ressourcen und NAN).

Warnung

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