Ściąga PHP
Przeszukiwalna, gotowa do druku referencja PHP 8.3+ — składnia, ciągi, tablice, funkcje, klasy, enumy, atrybuty i nowoczesne funkcje. Za darmo.
Podstawy i typy
10declare(strict_types=1);
Wymusza ścisłe sprawdzanie typów skalarnych
$x = 1;
Zmienne zaczynają się od znaku dolara
const MAX = 100;
Stała czasu kompilacji
gettype($x)
Pobiera typ wartości
(int) $x
Rzutuje na liczbę całkowitą
is_int($x)
Pomocnik sprawdzania typu (is_string, ...)
int|string $x
Deklaracja typu unii
?string $x
Typ dopuszczający null (string lub null)
$a ?? 'default'
Operator null coalescing
$a ??= 'default'
Przypisuje tylko, gdy null
Ciągi znaków
11"Hello $name"
Podwójne cudzysłowy interpolują zmienne
'literal $x'
Pojedyncze cudzysłowy są dosłowne
$a . $b
Łączy ciągi znaków
strlen($s)
Długość ciągu w bajtach
str_contains($s, 'a')
Sprawdza podciąg
str_starts_with($s, 'a')
Sprawdza prefiks
substr($s, 0, 3)
Wyodrębnia część ciągu
str_replace('a', 'b', $s)
Zastępuje wszystkie wystąpienia
explode(',', $s)
Dzieli na tablicę
sprintf('%05.2f', $n)
Sformatowany ciąg wyjściowy
trim($s)
Usuwa otaczające białe znaki
Tablice
11$a = [1, 2, 3];
Literał tablicy indeksowanej
$a = ['k' => 'v'];
Tablica asocjacyjna
array_map(fn($x) => $x * 2, $a)
Przekształca każdy element
array_filter($a, fn($x) => $x > 0)
Zachowuje pasujące elementy
array_reduce($a, $fn, 0)
Redukuje do jednej wartości
in_array($v, $a, true)
Ścisłe sprawdzanie wartości
array_keys($a)
Pobiera wszystkie klucze
array_merge($a, $b)
Łączy tablice
[...$a, ...$b]
Rozwija/łączy tablice
count($a)
Liczba elementów
[$x, $y] = $a;
Destrukturyzacja tablicy
Funkcje
9function f(int $a): int {}
Typowane parametry i zwrot
function f(int $a = 1) {}
Domyślna wartość parametru
function f(int ...$nums) {}
Parametry zmiennej liczby
f(...$args)
Rozwija argumenty
f(name: 'Sam', age: 30)
Argumenty nazwane
$fn = fn($x) => $x + 1;
Funkcja strzałkowa (auto-przechwyt zasięgu)
function () use ($x) {}
Domknięcie przechwytujące zmienną
$fn = strlen(...);
Składnia first-class callable
function f(): never {}
Nigdy nie zwraca (rzuca lub kończy)
Sterowanie przepływem
9if ($a) {} elseif ($b) {} else {}
Gałęzie warunkowe
$a ? $b : $c
Wyrażenie warunkowe (ternary)
$a ?: $b
Skrócony ternary (zapas dla falsy)
match ($x) { 1, 2 => 'a', default => 'b' }
Ścisłe dopasowanie oparte na wyrażeniu
switch ($x) { case 1: break; }
Luźne rozgałęzienie wielokierunkowe
foreach ($a as $k => $v) {}
Iteruje klucze i wartości
for ($i = 0; $i < 10; $i++) {}
Pętla licznikowa
while ($cond) {}
Pętla, gdy warunek jest spełniony
break / continue
Wyjście lub pominięcie iteracji pętli
Klasy i OOP
10class A extends B implements C {}
Dziedziczenie i interfejsy
public function __construct(private int $id) {}
Promocja właściwości w konstruktorze
public readonly string $name;
Niezmienne po inicjalizacji
public function f(): static {}
Zwraca typ wiązany późno
static::create()
Późne wiązanie statyczne
$obj?->method()
Bezpieczne wywołanie metody (null-safe)
abstract class A {}
Nie można utworzyć bezpośrednio instancji
trait T {} use T;
Wielokrotnie używalny kod poziomy
$obj instanceof A
Sprawdzanie typu w czasie działania
A::class
Pełna nazwa klasy jako ciąg
Wyliczenia (enum)
9enum Status { case Active; case Draft; }
Czyste wyliczenie
enum Status: string { case A = 'a'; }
Wyliczenie z wartością (string/int)
Status::Active
Odwołanie do przypadku enum
Status::from('a')
Tworzy z wartości bazowej
Status::tryFrom('x')
Zwraca null, gdy nieprawidłowe
Status::cases()
Tablica wszystkich przypadków
$status->value
Wartość bazowa przypadku
$status->name
Nazwa przypadku
enum E { public function label() {} }
Wyliczenia mogą mieć metody
Obsługa błędów
9try {} catch (Throwable $e) {}
Przechwytuje błędy i wyjątki
catch (TypeError | ValueError $e)
Przechwytuje wiele typów
catch (Exception)
Catch bez przechwytu (bez zmiennej)
finally {}
Zawsze wykonuje się po try/catch
throw new RuntimeException('x')
Rzuca wyjątek
throw $e;
Ponownie rzuca przechwycony wyjątek
$x = $v ?? throw new Error();
Rzuca jako wyrażenie
$e->getMessage()
Odczytuje komunikat błędu
$e->getPrevious()
Pobiera powiązany wyjątek
Atrybuty i nowoczesne
9#[Attribute] class Route {}
Deklaruje własny atrybut
#[Route('/home')]
Stosuje atrybut do celu
new ReflectionClass($x)
Bada klasę przez refleksję
$ref->getAttributes()
Odczytuje zadeklarowane atrybuty
json_encode($data)
Serializuje do JSON
json_decode($s, true)
Dekoduje JSON do tablicy
array_is_list($a)
true, gdy klucze to 0..n po kolei
str_word_count($s)
Liczy słowa w ciągu
$obj::class
Nazwa klasy z instancji
Żaden wpis nie pasuje do „:q”.
Potrzebujesz pomocy?
Masz problem z tym narzędziem? Daj nam znać.