PHP шпаргалка
Справочник за PHP 8.3+ с възможност за търсене и печат — синтаксис, низове, масиви, функции, класове, изброявания, атрибути и модерни функции. Безплатно.
Основи и типове
10declare(strict_types=1);
Налагане на строги проверки на скаларни типове
$x = 1;
Променливите започват с долар
const MAX = 100;
Константа по време на компилация
gettype($x)
Вземане на типа на стойност
(int) $x
Привеждане към цяло число
is_int($x)
Помощник за проверка на тип (is_string, ...)
int|string $x
Деклариране на union тип
?string $x
Nullable тип (string или null)
$a ?? 'default'
Оператор за null coalescing
$a ??= 'default'
Присвояване само ако е null
Низове
11"Hello $name"
Двойните кавички интерполират променливи
'literal $x'
Единичните кавички са буквални
$a . $b
Конкатенация на низове
strlen($s)
Дължина на низ в байтове
str_contains($s, 'a')
Проверка за подниз
str_starts_with($s, 'a')
Проверка на префикса
substr($s, 0, 3)
Извличане на част от низ
str_replace('a', 'b', $s)
Замяна на всички срещания
explode(',', $s)
Разделяне в масив
sprintf('%05.2f', $n)
Форматиран изход на низ
trim($s)
Премахване на околните интервали
Масиви
11$a = [1, 2, 3];
Индексиран масив литерал
$a = ['k' => 'v'];
Асоциативен масив
array_map(fn($x) => $x * 2, $a)
Трансформиране на всеки елемент
array_filter($a, fn($x) => $x > 0)
Запазване на съвпадащите елементи
array_reduce($a, $fn, 0)
Свеждане до една стойност
in_array($v, $a, true)
Строга проверка на стойност
array_keys($a)
Вземане на всички ключове
array_merge($a, $b)
Сливане на масиви
[...$a, ...$b]
Разгъване/сливане на масиви
count($a)
Брой елементи
[$x, $y] = $a;
Деструктуриране на масив
Функции
9function f(int $a): int {}
Типизирани параметри и връщане
function f(int $a = 1) {}
Стойност на параметър по подразбиране
function f(int ...$nums) {}
Вариативни параметри
f(...$args)
Разгъване на аргументи
f(name: 'Sam', age: 30)
Именувани аргументи
$fn = fn($x) => $x + 1;
Arrow функция (авто-улавя обхвата)
function () use ($x) {}
Closure, улавящ променлива
$fn = strlen(...);
Синтаксис за first-class callable
function f(): never {}
Никога не връща (throws или exit)
Управление на потока
9if ($a) {} elseif ($b) {} else {}
Условни разклонения
$a ? $b : $c
Тернарен израз
$a ?: $b
Кратък тернар (falsy резерва)
match ($x) { 1, 2 => 'a', default => 'b' }
Строг match, базиран на израз
switch ($x) { case 1: break; }
Свободно многопосочно разклонение
foreach ($a as $k => $v) {}
Обхождане на ключове и стойности
for ($i = 0; $i < 10; $i++) {}
Броен цикъл
while ($cond) {}
Цикъл докато условие е вярно
break / continue
Изход или пропускане на итерация
Класове и ООП
10class A extends B implements C {}
Наследяване и интерфейси
public function __construct(private int $id) {}
Промоция на свойства в конструктора
public readonly string $name;
Неизменим след инициализация
public function f(): static {}
Връщане на късно-свързания тип
static::create()
Късно статично свързване
$obj?->method()
Null-безопасно извикване на метод
abstract class A {}
Не може да се инстанцира директно
trait T {} use T;
Преизползваем хоризонтален код
$obj instanceof A
Проверка на тип по време на изпълнение
A::class
Низ с напълно квалифицирано име на клас
Изброявания
9enum Status { case Active; case Draft; }
Чисто изброяване
enum Status: string { case A = 'a'; }
Backed enum (string/int)
Status::Active
Препратка към случай на enum
Status::from('a')
Изграждане от стойност-носител
Status::tryFrom('x')
Връща null, ако е невалидно
Status::cases()
Масив от всички случаи
$status->value
Стойност-носител на случай
$status->name
Име на случая
enum E { public function label() {} }
Enum-ите могат да имат методи
Обработка на грешки
9try {} catch (Throwable $e) {}
Прихващане на грешки и изключения
catch (TypeError | ValueError $e)
Прихващане на множество типове
catch (Exception)
Catch без улавяне (без променлива)
finally {}
Винаги се изпълнява след try/catch
throw new RuntimeException('x')
Хвърляне на изключение
throw $e;
Повторно хвърляне на прихванато изключение
$x = $v ?? throw new Error();
Хвърляне като израз
$e->getMessage()
Четене на съобщението за грешка
$e->getPrevious()
Вземане на верижното изключение
Атрибути и модерни
9#[Attribute] class Route {}
Деклариране на персонализиран атрибут
#[Route('/home')]
Прилагане на атрибут към цел
new ReflectionClass($x)
Инспекция на клас чрез reflection
$ref->getAttributes()
Четене на декларираните атрибути
json_encode($data)
Сериализиране в JSON
json_decode($s, true)
Декодиране на JSON в масив
array_is_list($a)
True, ако ключовете са 0..n по ред
str_word_count($s)
Брой думи в низ
$obj::class
Име на клас от инстанция
Няма запис, който да съответства на „:q“.
Нуждаете се от помощ?
Открихте проблем с този инструмент? Кажете ни.