Шпаргалка по PHP
Последнее обновление
Hello World и теги
Код PHP находится внутри тегов <?php ... ?>; всё вне них отправляется как обычный вывод.
| Операция | Синтаксис |
|---|---|
| Открыть / закрыть PHP | <?php ... ?> |
| Вывести текст | echo "Hello, World!"; |
| Вывести с форматированием | printf("%d items", $n); |
| Краткий echo (в HTML) | <?= $name ?> |
| Однострочный комментарий | // comment или # comment |
| Блочный комментарий | /* comment */ |
| Завершение оператора | ; |
| Запустить файл (CLI) | php index.php |
Переменные и типы
Переменные начинаются с $ и динамически типизированы.
| Операция | Синтаксис |
|---|---|
| Объявить переменную | $name = "Ada"; |
| Константа | const PI = 3.14; или define("PI", 3.14); |
| Скалярные типы | int, float, string, bool |
| Null | $x = null; |
| Узнать тип | gettype($x), is_int($x), is_array($x) |
| Приведение типа | (int) $str, (string) $num |
| Переменная существует / задана | isset($x), empty($x) |
| Интерполяция строк | echo "Hi $name"; |
Строки
Двойные кавычки интерполируют переменные; одинарные - буквальны.
| Операция | Синтаксис |
|---|---|
| Конкатенация | $a . $b |
| Длина | strlen($s) |
| Верхний / нижний регистр | strtoupper($s), strtolower($s) |
| Подстрока | substr($s, 0, 5) |
| Найти позицию | strpos($s, "x") |
| Заменить | str_replace("a", "b", $s) |
| Разбить в массив | explode(",", $csv) |
| Объединить массив | implode(",", $arr) |
| Убрать пробелы по краям | trim($s) |
| Форматировать строку | sprintf("%05.2f", $n) |
Массивы (включая ассоциативные)
Один тип массива покрывает и индексированные списки, и мапы ключ-значение.
| Операция | Синтаксис |
|---|---|
| Индексированный массив | $nums = [1, 2, 3]; |
| Ассоциативный массив | $user = ["name" => "Ada", "age" => 30]; |
| Доступ к элементу | $nums[0], $user["name"] |
| Добавить в конец | $nums[] = 4; |
| Задать ключ | $user["role"] = "admin"; |
| Длина | count($nums) |
| Проверить ключ | isset($user["name"]), array_key_exists("name", $user) |
| Удалить элемент | unset($nums[1]); |
| Объединить массивы | array_merge($a, $b) |
| Перебор ключ => значение | foreach ($user as $k => $v) { ... } |
Управление потоком
Условия и циклы следуют синтаксису в стиле C.
| Операция | Синтаксис |
|---|---|
| If / elseif / else | if ($x > 0) { ... } elseif (...) { ... } else { ... } |
| Тернарный оператор | $y = $x > 0 ? "pos" : "neg"; |
| Объединение с null | $name = $_GET["name"] ?? "guest"; |
| Switch | switch ($day) { case 1: ...; break; default: ... } |
| Цикл for | for ($i = 0; $i < 10; $i++) { ... } |
| Цикл while | while ($x < 100) { ... } |
| Foreach | foreach ($items as $item) { ... } |
| Выражение match | $r = match($x) { 1 => "one", default => "?" }; |
| Break / continue | break;, continue; |
Функции
Функции могут объявлять типы, значения по умолчанию и вариативные параметры.
| Операция | Синтаксис |
|---|---|
| Базовая функция | function add($a, $b) { return $a + $b; } |
| Типизированные параметры и возврат | function add(int $a, int $b): int { ... } |
| Значение по умолчанию | function greet($name = "guest") { ... } |
| Вариативные параметры | function sum(...$nums) { ... } |
| Передача по ссылке | function inc(&$x) { $x++; } |
| Анонимная функция | $f = function($x) { return $x * 2; }; |
| Стрелочная функция | $f = fn($x) => $x * 2; |
| Использовать внешнюю переменную | function() use ($n) { ... } |
Суперглобальные переменные
Встроенные массивы, доступные в любой области видимости, в основном для данных запроса.
| Суперглобальная | Что содержит |
|---|---|
$_GET | Параметры строки запроса из URL |
$_POST | Данные формы, отправленные через POST |
$_REQUEST | Объединение $_GET, $_POST и $_COOKIE |
$_SESSION | Данные сессии для пользователя (после session_start()) |
$_COOKIE | Куки, отправленные браузером |
$_SERVER | Сведения о сервере и запросе (REQUEST_METHOD и т. д.) |
$_FILES | Метаданные загруженных файлов |
$_ENV | Переменные окружения |
Частые функции для массивов
PHP поставляется с сотнями помощников для массивов; это рабочие лошадки.
| Функция | Что делает |
|---|---|
array_map($fn, $arr) | Преобразовать каждый элемент |
array_filter($arr, $fn) | Оставить элементы, для которых колбэк вернул true |
array_reduce($arr, $fn, $init) | Свернуть к одному значению |
in_array($v, $arr) | Проверить наличие значения |
array_keys($arr) / array_values($arr) | Получить ключи или значения |
sort($arr) / rsort($arr) | Сортировка на месте (возр. / убыв.) |
usort($arr, $cmp) | Сортировка с пользовательским компаратором |
array_slice($arr, 1, 3) | Извлечь часть |
array_push($arr, $v) / array_pop($arr) | Добавить / удалить с конца |
Классы и ООП
PHP поддерживает классы, наследование, интерфейсы и модификаторы видимости.
| Операция | Синтаксис |
|---|---|
| Определить класс | class User { ... } |
| Свойство с видимостью | public string $name; |
| Конструктор | function __construct($name) { $this->name = $name; } |
| Продвижение свойств в конструкторе | function __construct(public string $name) {} |
| Создать экземпляр | $u = new User("Ada"); |
| Доступ к члену | $u->name, $u->save() |
| Статический член | User::$count, User::create() |
| Наследование | class Admin extends User { ... } |
| Интерфейс | interface Saveable { public function save(); } |
| Реализовать интерфейс | class User implements Saveable { ... } |
Синтаксис PHP, который нужен чаще всего, на одной странице. Эта шпаргалка по PHP - быстрый справочник по ядру языка: переменные и типы, строки, массивы (включая ассоциативные), управление потоком, функции, суперглобальные переменные вроде $_GET и $_POST, а также классы.
Всё здесь - стандартный PHP, работающий на современных версиях. Копируйте нужное или попробуйте каждый фрагмент вживую в playground для PHP - без настройки сервера.
Часто задаваемые вопросы по шпаргалке PHP
Эта шпаргалка по PHP бесплатна?
В чём разница между == и === в PHP?
== - нестрогое сравнение: оно приводит операнды к общему типу перед сравнением, поэтому 0 == "0" и даже 0 == "" могут вести себя неожиданно в разных версиях. === - строгое сравнение: оно возвращает true только когда значения равны и одного типа, поэтому 0 === "0" равно false. Предпочитайте ===, чтобы избежать ошибок из-за приведения типов.Что такое ассоциативные массивы в PHP?
["name" => "Ada", "age" => 30]. В PHP есть единый тип массива, служащий одновременно упорядоченным списком и мапой ключ-значение, поэтому вы обращаетесь к значениям по ключу через $user["name"] и перебираете через foreach ($user as $key => $value).