Всі інструменти
Безкоштовно

Довідник PHP 8.3+ із пошуком і можливістю друку — синтаксис, рядки, масиви, функції, класи, enums, атрибути та сучасні можливості. Безкоштовно.

Основи та типи

10
declare(strict_types=1);
Увімкнути сувору перевірку скалярних типів
$x = 1;
Змінні починаються зі знака долара
const MAX = 100;
Константа часу компіляції
gettype($x)
Отримати тип значення
(int) $x
Привести до цілого
is_int($x)
Помічник перевірки типу (is_string, ...)
int|string $x
Оголошення об'єднаного типу
?string $x
Nullable-тип (string або null)
$a ?? 'default'
Оператор null-злиття
$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;
Деструктуризація масиву

Функції

9
function 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;
Стрілкова функція (захоплює область)
function () use ($x) {}
Замикання, що захоплює змінну
$fn = strlen(...);
Синтаксис викликуваного першого класу
function f(): never {}
Ніколи не повертає (кидає або виходить)

Керування потоком

9
if ($a) {} elseif ($b) {} else {}
Умовні гілки
$a ? $b : $c
Тернарний вираз
$a ?: $b
Скорочений тернарій (запасне значення)
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
Вийти або пропустити ітерацію циклу

Класи та ООП

10
class 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
Рядок повного імені класу

Перелічення (enum)

9
enum Status { case Active; case Draft; }
Чисте перелічення
enum Status: string { case A = 'a'; }
Backed enum (string/int)
Status::Active
Посилання на кейс enum
Status::from('a')
Створити з backing-значення
Status::tryFrom('x')
Повертає null, якщо невалідне
Status::cases()
Масив усіх кейсів
$status->value
Backing-значення кейса
$status->name
Ім'я кейса
enum E { public function label() {} }
Enum можуть мати методи

Обробка помилок

9
try {} 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)
Дослідити клас через рефлексію
$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”.


Поділитися
Потрібна допомога?
Виникла проблема з цим інструментом? Повідомте нас.
Повідомити про проблему

Додайте цей безкоштовний інструмент на власний вебсайт — скопіюйте та вставте код нижче.