Eine der großen Stärken von PHP ist es, aufgrund von Bedingungen Entscheidungen fällen zu können und darauf basierend, unterschiedliche Tasks auszuführen. Eine Bedingung muss entweder wahr oder falsch sein (true oder false).
Die Werte true bzw. false werden auch Boolesche Werte (Boolean Values) genannt. Die Benennung erfolgte nach George Boole, einem englischen Mathematiker aus dem 19. Jahrhundert, dessen Arbeiten als Basis für die Computerlogik gelten.
Entscheidungen können auch aufgrund eines Vergleichs von zwei nicht-Boolescher Werte (non-Boolean values) gefällt werden. Ein Beispiel wäre der Vergleich von zwei Zahlen, ob sie den gleichen Wert haben oder ob eine Zahl größer oder kleiner ist als die andere.
Bei Booleschen Werten unterscheidet man zwischen expliziten und impliziten Werten.
Explizite Werte (explicit Boolean Values) sind:
Die Keywords true oder false. Bei diesen Keywords wird nicht zwischen Groß- und Kleinschreibung unterschieden. Man kann sie in Großbuchstaben, Kleinbuchstaben oder sogar in einem Mix aus Groß- und Kleinbuchstaben schreiben (was jedoch wegen der schlechten Lesbar nicht empfehlenswert ist):
$bedingung = TRUE; $bedingung = TruE; $bedingung = false; $bedingung = FaLsE;
Die Keywords true oder false dürfen nicht in Anführungszeichen stehen!
Zusätzlich zu den expliziten Booleschen Werten unterstützt PHP auch implizite Boolesche Werte (Implicit Boolean Values). Folgende Werte werden automatisch als falsch (false) angesehen:
- Die Keywords false oder null
- Die Null als eine Zahl oder ein String (0, 0.0 , ‚0‘)
- Ein leerer String zwischen einfachen oder doppelten Anführungszeichen ohne Leerstelle dazwischen (“, „“)
- Ein leerer Array
- Ein SimpleXML Object, das aus leeren Tags erstellt wurde.
Alles andere wird als true angesehen.
$ok = "false";
Dieser Wert wird von PHP als wahr angesehen, denn „false“ ist in Anführungszeichen gesetzt und damit ein String.
$ok = false;
Dieser Wert wird von PHP als falsch angesehen, denn false ist in diesem Fall der Boolesche Wert false.
Bildnachweis: George Boole – Quelle: Wikimedia, Public Domain
Alex says
Hi, warum gilt das Keyword false als impliziter und auch als expliziter boole’scher Wert?
Im Text steht:
explizit = Die Keywords true oder false.
implizit = Die Keywords false oder null
MC says
Hi, explizit bedeutet der Wert true oder false wird einer Variablen explizit zugewiesen.
implizit bedeutet, wenn der Wert false oder true als Bedingung eingesetzt wird, also nicht vorher einer Variablen zu gewiesen wird, sondern gefragt wird, ob die Bedingung true oder false erfüllt wird.