PHP Spiekbriefje
Een doorzoekbare, afdrukbare PHP 8.3+ referentie — syntaxis, strings, arrays, functies, klassen, enums, attributen en moderne functies. Gratis.
Basis & types
10declare(strict_types=1);
Forceer strikte scalaire typecontroles
$x = 1;
Variabelen beginnen met een dollarteken
const MAX = 100;
Compile-time constante
gettype($x)
Haal het type van een waarde op
(int) $x
Cast naar een integer
is_int($x)
Typecontrole-helper (is_string, ...)
int|string $x
Union-typedeclaratie
?string $x
Nullable type (string of null)
$a ?? 'default'
Null coalescing-operator
$a ??= 'default'
Toewijzen alleen als null
Strings
11"Hello $name"
Dubbele quotes interpoleren variabelen
'literal $x'
Enkele quotes zijn letterlijk
$a . $b
Voeg strings samen
strlen($s)
Bytelengte van een string
str_contains($s, 'a')
Controleer op een substring
str_starts_with($s, 'a')
Controleer het voorvoegsel
substr($s, 0, 3)
Haal een deel van een string op
str_replace('a', 'b', $s)
Vervang alle voorkomens
explode(',', $s)
Splits naar een array
sprintf('%05.2f', $n)
Geformatteerde stringuitvoer
trim($s)
Verwijder omringende witruimte
Arrays
11$a = [1, 2, 3];
Geïndexeerde array-literal
$a = ['k' => 'v'];
Associatieve array
array_map(fn($x) => $x * 2, $a)
Transformeer elk element
array_filter($a, fn($x) => $x > 0)
Behoud matchende elementen
array_reduce($a, $fn, 0)
Reduceer tot een enkele waarde
in_array($v, $a, true)
Strikte waardecontrole
array_keys($a)
Haal alle sleutels op
array_merge($a, $b)
Voeg arrays samen
[...$a, ...$b]
Spread/voeg arrays samen
count($a)
Aantal elementen
[$x, $y] = $a;
Array destructuring
Functies
9function f(int $a): int {}
Getypeerde parameters en return
function f(int $a = 1) {}
Standaard parameterwaarde
function f(int ...$nums) {}
Variadische parameters
f(...$args)
Spread argumenten
f(name: 'Sam', age: 30)
Benoemde argumenten
$fn = fn($x) => $x + 1;
Arrow-functie (vangt scope automatisch)
function () use ($x) {}
Closure die een variabele vangt
$fn = strlen(...);
First-class callable-syntaxis
function f(): never {}
Keert nooit terug (throws of exits)
Control flow
9if ($a) {} elseif ($b) {} else {}
Voorwaardelijke vertakkingen
$a ? $b : $c
Ternaire expressie
$a ?: $b
Korte ternaire (falsy fallback)
match ($x) { 1, 2 => 'a', default => 'b' }
Strikte, expressie-gebaseerde match
switch ($x) { case 1: break; }
Losse meervoudige vertakking
foreach ($a as $k => $v) {}
Itereer sleutels en waarden
for ($i = 0; $i < 10; $i++) {}
Getelde lus
while ($cond) {}
Loop zolang een voorwaarde geldt
break / continue
Verlaat of sla een lus-iteratie over
Classes & OOP
10class A extends B implements C {}
Overerving en interfaces
public function __construct(private int $id) {}
Constructor property promotion
public readonly string $name;
Onveranderlijk na initialisatie
public function f(): static {}
Geef het late-bound type terug
static::create()
Late static binding
$obj?->method()
Null-safe methodeaanroep
abstract class A {}
Kan niet direct geïnstantieerd worden
trait T {} use T;
Herbruikbare horizontale code
$obj instanceof A
Typecontrole tijdens runtime
A::class
Volledig gekwalificeerde class-naam string
Enums
9enum Status { case Active; case Draft; }
Pure enumeratie
enum Status: string { case A = 'a'; }
Backed enum (string/int)
Status::Active
Verwijs naar een enum-case
Status::from('a')
Bouw uit een backing-waarde
Status::tryFrom('x')
Geeft null terug indien ongeldig
Status::cases()
Array van alle cases
$status->value
Backing-waarde van een case
$status->name
Naam van de case
enum E { public function label() {} }
Enums kunnen methodes hebben
Foutafhandeling
9try {} catch (Throwable $e) {}
Vang errors en exceptions
catch (TypeError | ValueError $e)
Vang meerdere types
catch (Exception)
Niet-vangende catch (geen variabele)
finally {}
Draait altijd na try/catch
throw new RuntimeException('x')
Gooi een exception
throw $e;
Gooi de gevangen exception opnieuw
$x = $v ?? throw new Error();
Gooi als een expressie
$e->getMessage()
Lees het foutbericht
$e->getPrevious()
Haal de gekoppelde exception op
Attributen & modern
9#[Attribute] class Route {}
Declareer een aangepast attribuut
#[Route('/home')]
Pas een attribuut toe op een doel
new ReflectionClass($x)
Inspecteer een class via reflectie
$ref->getAttributes()
Lees gedeclareerde attributen
json_encode($data)
Serialiseer naar JSON
json_decode($s, true)
Decodeer JSON naar een array
array_is_list($a)
True als sleutels 0..n op volgorde zijn
str_word_count($s)
Tel woorden in een string
$obj::class
Class-naam van een instantie
Geen vermelding komt overeen met “:q”.
Hulp nodig?
Een probleem met deze tool gevonden? Laat het ons weten.