Skalare Datentypen string, int, float und bool

Wenn man in PHP einer Variable einen Wert zuweist, dann sind die Werte von einem bestimmten Datentyp. Ein Wert, der als Text zugewiesen wird, unterscheidet sich z.B. von einer Zahl. Diese werden wiederum in Ganzzahlen und Fließkommazahlen unterschieden. Solche Datentypen werden skalare Datentypen genannt. Damit ist gemeint, dass in der Variable nur ein Wert gespeichert wird. Im Gegensatz dazu können Variablen auch Werte von einem Datentyp speichern, die aus mehreren Werten bestehen können, z.B. Arrays. Die skalaren Datentypen werden in folgende vier Datentypen unterschieden.

  • string (Zeichenkette, Text)
  • int (Ganzzahl)
  • float (Fließkommazahl, auch double bezeichnet)
  • bool (Wahrheitswert TRUE oder FALSE)

Zu den skalaren Datentypen gehört auch bool. Bei diesem Datentyp fungiert die Variable quasi wie ein Schalter, der nur die beiden logischen Zustände 1 oder 0 bzw. TRUE oder FALSE (wahr oder falsch) haben kann. Man kann so in Variablen speichern, ob eine logische Aussage zutrifft (TRUE) oder nicht (FALSE). Man kann z.B. in einer Variable speichern, ob eine Checkbox in einem Formular ausgewählt wurde oder nicht und der weitere Programmlauf kann davon abhängig gemacht werden.

Anwendung von Datentyp bool

Die Anwendungsmöglichkeiten bei booleschen Werten sind sehr vielfältig. Beispielsweise kann man abfragen, ob eine Variable eine Ganzzahl enthält. Trifft das zu, würde der Wert TRUE zurückgeliefert werden, ansonsten FALSE. Man kann genauso abfragen, ob die Variable keine Ganzzahl enthält. In dem Fall würde der Wert TRUE bei Werten zurückgegeben werden, die nicht ganzzahlig sind. Solche logischen Aussagen werden boolesche Werte genannt.

Zuweisung von Werten

PHP zählt zu den schwach typisierten Programmiersprachen und beim Zuweisen von Werten muss der Datentyp nicht angegeben werden. Der Datentyp ergibt sich automatisch aus dem zugewiesenen Wert und es werden auch automatische Typkonvertierungen vorgenommen, die z.B. beim Rechnen notwendig sein können. Eine Zeichenkette wird in einfachen oder doppelten Hochkommas oder mit der Heredoc-Syntax angegeben. Zahlen oder boolesche Werte werden dagegen nicht in Hochkommas gesetzt.

// Zeichenketten
$var1 = 'Beliebiger Text';
$var2 = "Beliebiger Text";

// Zeichenkette mit Heredoc-Syntax
$var3 = <<<BEZ
Beliebiger Text
BEZ;

// Ganzzahl
$var4 = 10;

// Fließkommazahl
$var5 = 20.25;

// Boolescher Wert
$var6 = TRUE;

Datentyp bei gemischten Variablen

Variablen sind oft Bestandteile von anderen Variablen, die z.B. durch Verketten oder durch mathematische Berechnungen gebildet werden. Da die verwendeten Variablen unterschiedlichen Typs sein können und PHP eine Typkonvertierung automatisch vornimmt, ist es wichtig zu wissen, zu welchen Typen diese konvertiert werden.

Beim Verketten ist der Datentyp immer ein string. Beim Berechnen mit strings werden die strings automatisch zu 0 konvertiert, sofern sie nicht mit Ziffern beginnen. Falls sie mit Ziffern beginnen, konvertiert PHP diese in eine Zahl um (int oder float). Beim Berechnen von Zahlen hängt es davon ab, ob die urspringlichen Variablen vom Typ int und/oder float sind.

  • int mit int berechnen = int
  • int mit float berechnen = float
  • float mit float berechnen = float

Datentyp mit gettype() ermitteln

Wenn man wissen möchte, von welchem Datentyp eine Variable ist, kann man die Funktion gettype() verwenden und das Ergebnis mit echo ausgeben lassen. Innerhalb der runden Klammern wird die Variable angegeben, dessen Typ man ermitteln möchte.

// Ganzzahl
$var1 = 10;

// Fließkommazahl
$var2 = 20.25;

// Berechnung
$var3 = $var1 + $var2;

// Ausgabe ergibt double (float)
echo gettype($var3);

Man kann in PHP den Datentyp umwandeln und somit selbst vorgeben, wenn man nicht möchte, dass der PHP-Interpreter die Typkonvertierung automatisch vornimmt. Hierbei wird dem Wert der Datentyp in Klammern vorangestellt. Es gibt auch PHP-Funktionen wie settype(), mit denen eine Umwandlung durchgeführt werden kann.