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ührungszeichenint— Ganzzahl (64 Bit auf modernen Systemen)float— Fließkommazahlbool—trueoderfalsearray— indiziert oder assoziativobject— Instanz einer Klassenull— kein Wertresource— 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