Ключевые слова PHP
Ключевые слова PHP — это зарезервированные слова со встроенным значением, которые нельзя использовать как имена переменных, функций или классов.
Что такое ключевые слова PHP?
Ключевые слова — это зарезервированные слова, которым PHP придаёт встроенное значение. Они определяют структуру языка: условия, циклы, классы, обработку ошибок и многое другое, поэтому PHP обрабатывает их иначе, чем имена, придуманные вами. На этой странице перечислены все ключевые слова PHP, объяснены правила их использования и показано, как применяются наиболее распространённые из них.
Поскольку они зарезервированы, вы не можете использовать ключевое слово в качестве обычного идентификатора:
<?php
// These all cause a parse error — the words are reserved:
$list = []; // OK: "list" is fine as a variable name in modern PHP...
function for() {} // Parse error: "for" cannot be a function name
class If {} // Parse error: "if" cannot be a class nameИз этого вытекают два практических правила:
- Ключевые слова нечувствительны к регистру.
if,IFиIfозначают одно и то же, поэтомуECHO "hi";работает. (Имена переменных и имена, определяемые вами, напротив, чувствительны к регистру.) - Константы
true,falseиnullтакже зарезервированы. Они ведут себя как ключевые слова, хотя внешне похожи на обычные значения.
Список ключевых слов PHP
В таблице ниже ключевые слова сгруппированы по назначению, что значительно облегчает их запоминание по сравнению с единым плоским списком.
| Категория | Ключевые слова |
|---|---|
| Условия | if, else, elseif, endif, switch, case, default, endswitch, match |
| Циклы | for, endfor, foreach, endforeach, while, endwhile, do, break, continue |
| Функции и генераторы | function, fn, return, yield, use, static, global |
| Классы и ООП | class, interface, trait, enum, extends, implements, new, clone, abstract, final, public, protected, private, const, var, instanceof, insteadof |
| Пространства имён и автозагрузка | namespace, use, include, include_once, require, require_once |
| Обработка ошибок | try, catch, finally, throw |
| Языковые конструкции | echo, print, array, list, isset, unset, empty, die, exit, eval |
| Логические операторы | and, or, xor |
| Типы и значения | true, false, null, callable, int, float, string, bool |
| Прочее | as, declare, enddeclare, goto, __halt_compiler |
Точный набор медленно расширяется с каждой версией — match появился в PHP 8.0, enum в PHP 8.1, а fn (стрелочные функции) в PHP 7.4 — поэтому некоторые из приведённых выше слов недоступны в старых версиях. Вместо того чтобы заучивать список наизусть, вы всегда можете проверить слово во время выполнения:
<?php
var_dump(function_exists('array')); // bool(false) — "array" is a language construct, not a function
echo PHP_VERSION, "\n"; // tells you which keywords your runtime supportsИспользование ключевых слов PHP
Ключевые слова объединяются в операторы, из которых состоит каждая программа. В примере ниже условная конструкция, цикл и объявление функции используются вместе:
<?php
$x = 7;
// Define a conditional statement
if ($x == 5) {
echo "x is equal to 5.";
}
// Define a loop
for ($i = 0; $i < 10; $i++) {
echo $i;
}
// Define a function
function add($a, $b)
{
return $a + $b;
}
?>Здесь ключевое слово if начинает условную конструкцию, проверяющую, равно ли $x числу 5; for строит цикл от 0 до 9; а function объявляет многократно используемую процедуру, которая возвращает сумму двух аргументов.
Распространённые подводные камни
- Зарезервированные слова в качестве имён методов или констант. Начиная с PHP 7, большинство ключевых слов допускается в качестве имён методов, свойств и констант классов (например,
$object->list()илиFoo::CONSTвызовет ошибку синтаксического разбора, ноFoo::PRINT— нет), однако их использование ухудшает читаемость кода. Предпочитайте более понятные имена. echoиprint— не функции.echo "a", "b";работает (несколько аргументов, скобки не нужны); это языковые конструкции, поэтому передавать их в качестве коллбэков нельзя.exitиdieидентичны. Оба немедленно останавливают скрипт;die— просто псевдоним.- Не путайте
and/orс&&/||. Словесные формы имеют более низкий приоритет, поэтому$ok = true and false;присваиваетtrue, а неfalse. В выражениях придерживайтесь&&и||. Таблицу приоритетов смотрите в разделе PHP Операторы.
Связанные темы
У каждой группы ключевых слов есть собственная глава с более подробным рассмотрением:
- PHP Переменные и PHP Типы данных — как работают
var,arrayи ключевые слова типов. - PHP If...Else...Elseif и PHP Циклы — ключевые слова управления потоком выполнения.
- PHP Функции —
function,return,useи область видимости. - PHP Классы и объекты — ключевые слова ООП.
- PHP Константы и PHP Пространства имён.
Заключение
Ключевые слова PHP — это фиксированный словарный запас языка: зарезервированные, нечувствительные к регистру слова, из которых строятся условия, циклы, классы и обработка ошибок. Знание зарезервированных слов убережёт вас от недопустимых имён, а понимание назначения каждого из них позволит свободно читать и писать код на PHP. В случае сомнений группируйте ключевые слова по назначению — как в таблице выше — вместо того чтобы заучивать их по одному.