PHP-Lektionen – Lektion 5 – PHP Boolesche Variablen
Also, wir wissen jetzt, dass es in PHP Zahlen und Strings gibt. Aber das ist noch nicht alles, in dieser Lektion betrachten wir eine weitere Art von Variablen, nämlich logische Variablen. Sie heißen so, weil sie zur Steuerung der Logik unseres Codes verwendet werden. Angenommen, es gibt eine Situation, in der bei unterschiedlichen Bedingungen verschiedene Aktionen ausgeführt werden müssen. Sie haben ein Glas Wasser, aus dem Sie trinken möchten. Wenn aber wenig Wasser drin ist, trinken Sie nicht genug, und wenn zu viel drin ist, läuft beim Kippen Wasser aus. Deshalb muss man je nach Füllstand Wasser nachfüllen oder abgießen.
Das kann man so darstellen:
$menge_wasser_im_glas = 100;
$zu_wenig_wasser = WAHR;
WENN $zu_wenig_wasser
DANN $menge_wasser_im_glas = $menge_wasser_im_glas + 20;
In diesem Fall ist die Variable $zu_wenig_wasser eine logische Variable, die nur TRUE (wahr) oder FALSE (falsch) annehmen kann. Nicht mehr und nicht weniger. Und der obige Code ist kein PHP; wenn man ihn in eine PHP-Datei einfügt, wird Apache einen Fehler ausgeben. So sieht der entsprechende PHP-Code aus:
$water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; }
Über den if-Bedingungsoperator sprechen wir später, jetzt zu TRUE und FALSE. Üblicherweise werden zusätzlich zu TRUE und FALSE auch 1 und 0 verwendet. Warum sollte man aber TRUE und FALSE extra verwenden und sich das Leben komplizieren? Erinnern Sie sich, ich sagte, dass eine Integer-Variable halb so viel Speicher braucht wie eine Gleitkommazahl. Logische Variablen (TRUE oder FALSE) brauchen viermal weniger Speicher als Integer und achtmal weniger als Gleitkommazahlen. Deshalb ist es besser, TRUE oder FALSE zu verwenden, wenn möglich.
Vielleicht fragen Sie sich, was das für einen Unterschied macht, wenn auf Ihrem Server 8 Gigabyte RAM sind. Stellen Sie sich nun vor, Ihre Webseite hat 1000 Integer-Variablen, die durch logische Variablen ersetzt werden können. Das sind 4 Megabyte nur für diese Variablen. Bei logischen Variablen sind es nur 1 Megabyte. Nun stellen Sie sich vor, 100 Benutzer greifen gleichzeitig auf die Seite zu. Das sind 400 Megabyte für Integer-Variablen und nur 100 Megabyte bei Verwendung von logischen Variablen. Ein Unterschied von 300 Megabyte! Natürlich ist das Beispiel vereinfacht, aber das Prinzip sollte klar sein.
Und noch etwas dazu, wie logische Variablen zu Integern werden.
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>Das Ergebnis ist 2, PHP addiert also logisch und numerisch problemlos. Keine Angst vor Typinkompatibilität.