Start · Sprachen · PHP · Kapitel · Variablen & Datentypen
// Kapitel · PHP

Variablen & Datentypen

PHP kennt acht primitive Datentypen. Seit PHP 7 lässt sich für jeden davon eine Typ-Deklaration erzwingen — nutze das immer.

Variablen in PHP beginnen mit $ und sind case-sensitive. PHP ist dynamisch typisiert, aber seit Version 7 lassen sich Typen für Funktionsparameter, Rückgabewerte und Properties strikt deklarieren.

Primitive Typen

  • string — Text, in einfachen oder doppelten Anführungszeichen
  • int — Ganzzahl (64 Bit auf modernen Systemen)
  • float — Fließkommazahl
  • booltrue oder false
  • array — indiziert oder assoziativ
  • object — Instanz einer Klasse
  • null — kein Wert
  • resource — externe Ressource (Dateihandle, DB-Verbindung)

Beispiel mit strict types

<?php

declare(strict_types=1);

$name    = 'PHP';           // string
$version = 8.4;              // float
$rank    = 1;                // int
$aktiv   = true;             // bool
$tags    = ['web', 'oop'];  // array
$leer    = null;             // null

// Typ prüfen
var_dump(gettype($version));  // string(6) "double"
var_dump(is_int($rank));      // bool(true)

String-Interpolation

In doppelten Anführungszeichen werden Variablen ersetzt, in einfachen nicht:

$name = 'Anna';
echo "Hallo, $name!";        // Hallo, Anna!
echo 'Hallo, $name!';        // Hallo, $name!
echo "Hallo, {$user->name}!"; // Für Objekt-/Array-Zugriffe: geschweifte Klammern

Type Juggling — die Falle

PHP konvertiert Typen automatisch beim Vergleich. Das ist bequem, aber gefährlich. Nutze immer === (strict comparison):

var_dump(0 == 'foo');   // bool(false) seit PHP 8, bool(true) davor (!)
var_dump(0 === 'foo');  // bool(false) — immer

var_dump('1' == 1);     // bool(true)  — Type Juggling
var_dump('1' === 1);    // bool(false) — strict