Alle Werkzeuge
Kostenlos

Eine durchsuchbare, druckbare PHP-8.3+-Referenz — Syntax, Strings, Arrays, Funktionen, Klassen, Enums, Attribute und moderne Funktionen. Kostenlos.

Grundlagen & Typen

10
declare(strict_types=1);
Strikte Skalartyp-Prüfung erzwingen
$x = 1;
Variablen beginnen mit Dollarzeichen
const MAX = 100;
Compile-Zeit-Konstante
gettype($x)
Typ eines Werts ermitteln
(int) $x
In Integer casten
is_int($x)
Typprüf-Helfer (is_string, ...)
int|string $x
Union-Typ-Deklaration
?string $x
Nullable-Typ (string oder null)
$a ?? 'default'
Null-Coalescing-Operator
$a ??= 'default'
Nur zuweisen, wenn null

Strings

11
"Hello $name"
Doppelte Anführungszeichen interpolieren Variablen
'literal $x'
Einfache Anführungszeichen sind wörtlich
$a . $b
Strings verketten
strlen($s)
Byte-Länge eines Strings
str_contains($s, 'a')
Auf Teilstring prüfen
str_starts_with($s, 'a')
Präfix prüfen
substr($s, 0, 3)
Teil eines Strings extrahieren
str_replace('a', 'b', $s)
Alle Vorkommen ersetzen
explode(',', $s)
In ein Array aufteilen
sprintf('%05.2f', $n)
Formatierte String-Ausgabe
trim($s)
Umgebende Leerzeichen entfernen

Arrays

11
$a = [1, 2, 3];
Indiziertes Array-Literal
$a = ['k' => 'v'];
Assoziatives Array
array_map(fn($x) => $x * 2, $a)
Jedes Element transformieren
array_filter($a, fn($x) => $x > 0)
Passende Elemente behalten
array_reduce($a, $fn, 0)
Auf einen Wert reduzieren
in_array($v, $a, true)
Strikte Wertprüfung
array_keys($a)
Alle Schlüssel holen
array_merge($a, $b)
Arrays zusammenführen
[...$a, ...$b]
Arrays entpacken/mergen
count($a)
Anzahl der Elemente
[$x, $y] = $a;
Array-Destrukturierung

Funktionen

9
function f(int $a): int {}
Typisierte Parameter und Rückgabe
function f(int $a = 1) {}
Standard-Parameterwert
function f(int ...$nums) {}
Variadische Parameter
f(...$args)
Argumente entpacken
f(name: 'Sam', age: 30)
Benannte Argumente
$fn = fn($x) => $x + 1;
Arrow-Funktion (erfasst Scope automatisch)
function () use ($x) {}
Closure, die eine Variable erfasst
$fn = strlen(...);
First-Class-Callable-Syntax
function f(): never {}
Kehrt nie zurück (wirft oder beendet)

Kontrollfluss

9
if ($a) {} elseif ($b) {} else {}
Bedingte Verzweigungen
$a ? $b : $c
Ternärer Ausdruck
$a ?: $b
Kurzes Ternär (falsy-Fallback)
match ($x) { 1, 2 => 'a', default => 'b' }
Strikter, ausdrucksbasierter match
switch ($x) { case 1: break; }
Lockere Mehrwegverzweigung
foreach ($a as $k => $v) {}
Schlüssel und Werte iterieren
for ($i = 0; $i < 10; $i++) {}
Gezählte Schleife
while ($cond) {}
Schleife, solange Bedingung gilt
break / continue
Schleifeniteration beenden/überspringen

Klassen & OOP

10
class A extends B implements C {}
Vererbung und Interfaces
public function __construct(private int $id) {}
Konstruktor-Property-Promotion
public readonly string $name;
Unveränderlich nach Initialisierung
public function f(): static {}
Späten gebundenen Typ zurückgeben
static::create()
Späte statische Bindung
$obj?->method()
Null-sicherer Methodenaufruf
abstract class A {}
Nicht direkt instanziierbar
trait T {} use T;
Wiederverwendbarer horizontaler Code
$obj instanceof A
Typprüfung zur Laufzeit
A::class
Voll qualifizierter Klassenname-String

Enums

9
enum Status { case Active; case Draft; }
Reine Aufzählung
enum Status: string { case A = 'a'; }
Backed-Enum (string/int)
Status::Active
Enum-Fall referenzieren
Status::from('a')
Aus Backing-Wert erstellen
Status::tryFrom('x')
Gibt null zurück, wenn ungültig
Status::cases()
Array aller Fälle
$status->value
Backing-Wert eines Falls
$status->name
Name des Falls
enum E { public function label() {} }
Enums können Methoden haben

Fehlerbehandlung

9
try {} catch (Throwable $e) {}
Fehler und Exceptions abfangen
catch (TypeError | ValueError $e)
Mehrere Typen abfangen
catch (Exception)
Catch ohne Variable
finally {}
Läuft immer nach try/catch
throw new RuntimeException('x')
Exception werfen
throw $e;
Gefangene Exception erneut werfen
$x = $v ?? throw new Error();
Als Ausdruck werfen
$e->getMessage()
Fehlermeldung lesen
$e->getPrevious()
Verkettete Exception holen

Attribute & Modernes

9
#[Attribute] class Route {}
Eigenes Attribut deklarieren
#[Route('/home')]
Attribut auf ein Ziel anwenden
new ReflectionClass($x)
Klasse per Reflection untersuchen
$ref->getAttributes()
Deklarierte Attribute lesen
json_encode($data)
Zu JSON serialisieren
json_decode($s, true)
JSON zu Array dekodieren
array_is_list($a)
true, wenn Schlüssel 0..n geordnet sind
str_word_count($s)
Wörter in einem String zählen
$obj::class
Klassenname aus einer Instanz

Kein Eintrag passt zu „:q“.


Brauchen Sie Hilfe?
Ein Problem mit diesem Tool gefunden? Sagen Sie es unserem Team.
Problem melden

Füge dieses kostenlose Tool zu deiner eigenen Website hinzu — kopiere den Code unten und füge ihn ein.