5.07. Ключевые слова в PHP
ОБЯЗАТЕЛЬНОДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВВ РАЗРАБОТКЕ
Разработчику
Архитектору
Ключевые слова в PHP
Управляющие структуры
Условные операторы
| Ключевое слово | Значение | Пример |
|---|
if | Выполнение блока кода при истинности условия | if ($x > 0) { echo "Положительное"; } |
else | Альтернативный блок кода при ложности условия | if ($x > 0) { echo "Положительное"; } else { echo "Отрицательное"; } |
elseif | Дополнительное условие после if | if ($x > 0) { echo "Положительное"; } elseif ($x == 0) { echo "Ноль"; } |
switch | Множественный выбор на основе значения | switch ($day) { case 1: echo "Понедельник"; break; } |
case | Вариант значения в конструкции switch | case "red": echo "Красный"; break; |
default | Блок по умолчанию в switch | default: echo "Неизвестный цвет"; |
Циклы
| Ключевое слово | Значение | Пример |
|---|
while | Цикл с предусловием | while ($i < 10) { echo $i; $i++; } |
do | Начало цикла с постусловием | do { echo $i; $i++; } while ($i < 10); |
for | Цикл с инициализацией, условием и инкрементом | for ($i = 0; $i < 10; $i++) { echo $i; } |
foreach | Перебор элементов массива или объекта | foreach ($array as $value) { echo $value; } |
break | Прерывание цикла или switch | while (true) { if ($x > 10) break; } |
continue | Переход к следующей итерации цикла | for ($i = 0; $i < 10; $i++) { if ($i % 2 == 0) continue; echo $i; } |
Логические операторы
| Ключевое слово | Значение | Пример |
|---|
and | Логическое И (низкий приоритет) | if ($a and $b) { echo "Оба истинны"; } |
or | Логическое ИЛИ (низкий приоритет) | if ($a or $b) { echo "Хотя бы один истинен"; } |
xor | Исключающее ИЛИ | if ($a xor $b) { echo "Только один истинен"; } |
&& | Логическое И (высокий приоритет) | if ($a && $b) { echo "Оба истинны"; } |
! | Логическое НЕ | if (!$flag) { echo "Флаг не установлен"; } |
Обработка исключений
| Ключевое слово | Значение | Пример |
|---|
try | Блок кода, в котором может возникнуть исключение | try { $result = 10 / 0; } |
catch | Обработка перехваченного исключения | catch (Exception $e) { echo $e->getMessage(); } |
finally | Блок, выполняемый всегда после try/catch | finally { echo "Завершено"; } |
throw | Генерация исключения | throw new Exception("Ошибка"); |
Функции
| Ключевое слово | Значение | Пример |
|---|
function | Объявление пользовательской функции | function greet($name) { return "Привет, $name"; } |
return | Возврат значения из функции | function add($a, $b) { return $a + $b; } |
static | Объявление статической переменной в функции | function counter() { static $count = 0; return ++$count; } |
global | Доступ к глобальной переменной внутри функции | function show() { global $x; echo $x; } |
Классы и объекты
| Ключевое слово | Значение | Пример |
|---|
class | Объявление класса | class User { public $name; } |
new | Создание нового объекта | $user = new User(); |
extends | Наследование класса | class Admin extends User { } |
implements | Реализация интерфейса | class MyClass implements MyInterface { } |
interface | Объявление интерфейса | interface Logger { public function log($msg); } |
trait | Объявление трейта | trait Loggable { public function log($msg) { } } |
use | Использование трейта или пространства имен | use Loggable; |
public | Публичный модификатор доступа | public $name; |
protected | Защищенный модификатор доступа | protected $password; |
private | Приватный модификатор доступа | private $secret; |
abstract | Объявление абстрактного класса или метода | abstract class Shape { abstract public function area(); } |
final | Запрет наследования класса или переопределения метода | final class Utils { } |
const | Объявление константы класса | class Config { const VERSION = "1.0"; } |
self | Ссылка на текущий класс | return self::VERSION; |
parent | Ссылка на родительский класс | parent::__construct(); |
static | Ссылка на вызывающий класс (позднее статическое связывание) | return static::class; |
Типы данных и объявления
| Ключевое слово | Значение | Пример |
|---|
array | Создание массива | $arr = array(1, 2, 3); |
bool | Булевый тип данных | function check(bool $flag) { } |
int | Целочисленный тип данных | function add(int $a, int $b): int { } |
float | Число с плавающей точкой | function divide(float $a, float $b): float { } |
string | Строковый тип данных | function greet(string $name): string { } |
object | Тип объект | function process(object $obj) { } |
mixed | Любой тип данных | function getValue(): mixed { } |
void | Отсутствие возвращаемого значения | function log(string $msg): void { } |
null | Тип значения null | function maybeNull(): ?string { } |
iterable | Тип для массивов и объектов Traversable | function process(iterable $data) { } |
callable | Тип для вызываемых значений | function execute(callable $callback) { } |
never | Тип для функций, которые никогда не возвращают значение | function abort(): never { exit(); } |
Прочие ключевые слова
| Ключевое слово | Значение | Пример |
|---|
namespace | Объявление пространства имен | namespace App\Controllers; |
require | Подключение файла с ошибкой при отсутствии | require "config.php"; |
require_once | Подключение файла один раз | require_once "autoload.php"; |
include | Подключение файла с предупреждением при отсутствии | include "header.php"; |
include_once | Подключение файла один раз | include_once "functions.php"; |
echo | Вывод данных | echo "Привет, мир!"; |
print | Вывод данных (возвращает 1) | print "Привет"; |
die | Завершение выполнения скрипта | die("Ошибка подключения"); |
exit | Завершение выполнения скрипта | exit(0); |
isset | Проверка существования переменной | if (isset($var)) { echo $var; } |
unset | Удаление переменной | unset($var); |
empty | Проверка на пустое значение | if (empty($array)) { echo "Пусто"; } |
list | Присвоение значений массива переменным | list($a, $b) = [1, 2]; |
clone | Создание копии объекта | $copy = clone $original; |
instanceof | Проверка принадлежности объекта к классу | if ($obj instanceof User) { } |
match | Выражение сопоставления (начиная с PHP 8.0) | $result = match($status) { 200 => "OK", 404 => "Not Found" }; |
fn | Короткая стрелочная функция (начиная с PHP 7.4) | $square = fn($x) => $x * $x; |
readonly | Объявление свойства только для чтения (начиная с PHP 8.1) | readonly class Point { public int $x; } |
enum | Объявление перечисления (начиная с PHP 8.1) | enum Status { case Draft; case Published; } |
Магические ключевые слова
| Ключевое слово | Значение | Пример |
|---|
__LINE__ | Текущий номер строки | echo "Строка: " . __LINE__; |
__FILE__ | Полный путь к текущему файлу | echo "Файл: " . __FILE__; |
__DIR__ | Директория текущего файла | require __DIR__ . "/config.php"; |
__FUNCTION__ | Имя текущей функции | echo "Функция: " . __FUNCTION__; |
__CLASS__ | Имя текущего класса | echo "Класс: " . __CLASS__; |
__TRAIT__ | Имя текущего трейта | echo "Трейт: " . __TRAIT__; |
__METHOD__ | Имя текущего метода | echo "Метод: " . __METHOD__; |
__NAMESPACE__ | Имя текущего пространства имен | echo "Пространство: " . __NAMESPACE__; |
Дополнительные ключевые слова
| Ключевое слово | Значение | Пример |
|---|
as | Переименование элемента в foreach или псевдоним пространства имен | foreach ($array as $key => $value) { } |
callable | Тип данных для вызываемых значений | function execute(callable $callback) { } |
clone | Создание копии объекта | $copy = clone $original; |
const | Объявление константы | const MAX_SIZE = 100; |
declare | Установка директив выполнения | declare(strict_types=1); |
die | Прекращение выполнения скрипта | die("Ошибка"); |
echo | Вывод одного или нескольких строк | echo "Привет", "мир"; |
empty | Проверка на пустое значение | if (empty($var)) { } |
eval | Выполнение строки как кода PHP | eval('echo "Тест";'); |
exit | Завершение выполнения скрипта | exit(1); |
fn | Короткая стрелочная функция | $add = fn($x, $y) => $x + $y; |
goto | Переход к метке в коде | goto label; |
halt_compiler | Остановка компилятора | __halt_compiler(); |
isset | Проверка существования переменной | if (isset($var)) { } |
list | Присвоение значений массива переменным | list($a, $b) = [1, 2]; |
match | Выражение сопоставления | $result = match($status) { 200 => "OK" }; |
print | Вывод строки | print "Текст"; |
readonly | Объявление свойства только для чтения | readonly class Point { } |
unset | Удаление переменной | unset($var); |
var | Устаревший синоним public | var $property; |
yield | Возврат значения из генератора | yield $value; |
yield from | Делегирование генератора | yield from $generator; |
Ключевые слова для типов (начиная с PHP 8.0+)
| Ключевое слово | Значение | Пример |
|---|
never | Тип для функций, которые никогда не возвращают значение | function abort(): never { exit(); } |
mixed | Любой тип данных | function getValue(): mixed { return $value; } |
false | Тип со значением false | `function check(): bool |
true | Тип со значением true | function isEnabled(): true { return true; } |
null | Тип со значением null | function maybeNull(): ?string { } |
void | Отсутствие возвращаемого значения | function log(string $msg): void { } |
iterable | Тип для массивов и объектов Traversable | function process(iterable $data) { } |
Ключевые слова пространств имен
| Ключевое слово | Значение | Пример |
|---|
namespace | Объявление пространства имен | namespace App\Controllers; |
use | Импорт класса или функции | use App\User; |
as | Создание псевдонима | use App\User as Customer; |
__NAMESPACE__ | Текущее пространство имен | echo __NAMESPACE__; |
Ключевые слова для работы с файлами
| Ключевое слово | Значение | Пример |
|---|
require | Подключение файла с ошибкой при отсутствии | require "config.php"; |
require_once | Подключение файла один раз | require_once "autoload.php"; |
include | Подключение файла с предупреждением | include "header.php"; |
include_once | Подключение файла один раз | include_once "functions.php"; |
Ключевые слова для объектов
| Ключевое слово | Значение | Пример |
|---|
instanceof | Проверка принадлежности объекта к классу | if ($obj instanceof User) { } |
new | Создание нового объекта | $user = new User(); |
self | Ссылка на текущий класс | return self::VERSION; |
parent | Ссылка на родительский класс | parent::__construct(); |
static | Позднее статическое связывание | return static::class; |
$this | Ссылка на текущий объект | return $this->name; |
Ключевые слова для атрибутов (PHP 8.0+)
| Ключевое слово | Значение | Пример |
|---|
attribute | Объявление пользовательского атрибута | #[Attribute] class MyAttr { } |
Зарезервированные слова, не являющиеся ключевыми
Эти слова зарезервированы для будущего использования и не могут быть использованы в качестве имен классов, интерфейсов или трейтов:
int, float, bool, string, true, false, null, resource, object, mixed, numeric, iterable, void, never, array, callable, self, static, parent
Магические константы
| Ключевое слово | Значение | Пример |
|---|
__LINE__ | Номер текущей строки | echo "Строка: " . __LINE__; |
__FILE__ | Полный путь к файлу | echo "Файл: " . __FILE__; |
__DIR__ | Директория файла | require __DIR__ . "/config.php"; |
__FUNCTION__ | Имя функции | echo __FUNCTION__; |
__CLASS__ | Имя класса | echo __CLASS__; |
__TRAIT__ | Имя трейта | echo __TRAIT__; |
__METHOD__ | Имя метода | echo __METHOD__; |
__NAMESPACE__ | Имя пространства имен | echo __NAMESPACE__; |
Примечания
Ключевые слова в PHP не чувствительны к регистру, за исключением магических констант. Все ключевые слова могут использоваться в любом регистре: IF, If, if — это одно и то же ключевое слово.
Некоторые ключевые слова имеют альтернативные формы записи. Например, and и && выполняют одну и ту же логическую операцию, но имеют разный приоритет.