PHP-fusklapp
En sökbar, utskrivbar referens för PHP 8.3+ — syntax, strängar, arrayer, funktioner, klasser, enums, attribut och moderna funktioner. Gratis.
Grunder och typer
10declare(strict_types=1);
Framtvinga strikta skalärtypskontroller
$x = 1;
Variabler börjar med dollartecken
const MAX = 100;
Kompileringskonstant
gettype($x)
Hämta typen av ett värde
(int) $x
Casta till ett heltal
is_int($x)
Typkontrollhjälpare (is_string, ...)
int|string $x
Union-typdeklaration
?string $x
Nullbar typ (string eller null)
$a ?? 'default'
Null-sammanslagningsoperator
$a ??= 'default'
Tilldela endast om null
Strängar
11"Hello $name"
Dubbla citattecken interpolerar variabler
'literal $x'
Enkla citattecken är bokstavliga
$a . $b
Sammanfoga strängar
strlen($s)
Bytelängd för en sträng
str_contains($s, 'a')
Kontrollera om en delsträng finns
str_starts_with($s, 'a')
Kontrollera prefixet
substr($s, 0, 3)
Extrahera del av en sträng
str_replace('a', 'b', $s)
Ersätt alla förekomster
explode(',', $s)
Dela upp i en array
sprintf('%05.2f', $n)
Formaterad strängutdata
trim($s)
Ta bort omgivande blanksteg
Arrayer
11$a = [1, 2, 3];
Indexerad array-literal
$a = ['k' => 'v'];
Associativ array
array_map(fn($x) => $x * 2, $a)
Transformera varje element
array_filter($a, fn($x) => $x > 0)
Behåll matchande element
array_reduce($a, $fn, 0)
Reducera till ett enda värde
in_array($v, $a, true)
Strikt värdeskontroll
array_keys($a)
Hämta alla nycklar
array_merge($a, $b)
Slå samman arrayer
[...$a, ...$b]
Sprid/slå samman arrayer
count($a)
Antal element
[$x, $y] = $a;
Arraydestrukturering
Funktioner
9function f(int $a): int {}
Typade parametrar och retur
function f(int $a = 1) {}
Standardvärde för parameter
function f(int ...$nums) {}
Variadiska parametrar
f(...$args)
Sprid argument
f(name: 'Sam', age: 30)
Namngivna argument
$fn = fn($x) => $x + 1;
Pilfunktion (fångar scope automatiskt)
function () use ($x) {}
Closure som fångar en variabel
$fn = strlen(...);
First-class callable-syntax
function f(): never {}
Returnerar aldrig (kastar eller avslutar)
Kontrollflöde
9if ($a) {} elseif ($b) {} else {}
Villkorsgrenar
$a ? $b : $c
Ternärt uttryck
$a ?: $b
Kort ternär (falsy-reserv)
match ($x) { 1, 2 => 'a', default => 'b' }
Strikt, uttrycksbaserad match
switch ($x) { case 1: break; }
Lös flervägsgrening
foreach ($a as $k => $v) {}
Iterera nycklar och värden
for ($i = 0; $i < 10; $i++) {}
Räknad loop
while ($cond) {}
Loopa medan ett villkor gäller
break / continue
Avsluta eller hoppa över en loopiteration
Klasser och OOP
10class A extends B implements C {}
Arv och gränssnitt
public function __construct(private int $id) {}
Konstruktorsegenskapspromotion
public readonly string $name;
Oföränderlig efter initiering
public function f(): static {}
Returnera den sent bundna typen
static::create()
Sen statisk bindning
$obj?->method()
Null-säkert metodanrop
abstract class A {}
Kan inte instansieras direkt
trait T {} use T;
Återanvändbar horisontell kod
$obj instanceof A
Typkontroll vid körtid
A::class
Fullständigt kvalificerat klassnamn som sträng
Enums
9enum Status { case Active; case Draft; }
Ren uppräkning
enum Status: string { case A = 'a'; }
Backad enum (string/int)
Status::Active
Referera ett enum-fall
Status::from('a')
Bygg från ett backningsvärde
Status::tryFrom('x')
Returnerar null om ogiltig
Status::cases()
Array av alla fall
$status->value
Backningsvärde för ett fall
$status->name
Namn på fallet
enum E { public function label() {} }
Enums kan ha metoder
Felhantering
9try {} catch (Throwable $e) {}
Fånga fel och undantag
catch (TypeError | ValueError $e)
Fånga flera typer
catch (Exception)
Icke-fångande catch (ingen variabel)
finally {}
Körs alltid efter try/catch
throw new RuntimeException('x')
Kasta ett undantag
throw $e;
Kasta om det fångade undantaget
$x = $v ?? throw new Error();
Kasta som ett uttryck
$e->getMessage()
Läs felmeddelandet
$e->getPrevious()
Hämta det kedjade undantaget
Attribut och modernt
9#[Attribute] class Route {}
Deklarera ett anpassat attribut
#[Route('/home')]
Tillämpa ett attribut på ett mål
new ReflectionClass($x)
Inspektera en klass via reflektion
$ref->getAttributes()
Läs deklarerade attribut
json_encode($data)
Serialisera till JSON
json_decode($s, true)
Avkoda JSON till en array
array_is_list($a)
True om nycklar är 0..n i ordning
str_word_count($s)
Räkna ord i en sträng
$obj::class
Klassnamn från en instans
Ingen post matchar “:q”.
Behöver du hjälp?
Hittade du ett problem med det här verktyget? Berätta för oss.