W3docs

Ключевые слова 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. В случае сомнений группируйте ключевые слова по назначению — как в таблице выше — вместо того чтобы заучивать их по одному.

Практика

Практика
Какие из следующих слов являются зарезервированными ключевыми словами в PHP?
Какие из следующих слов являются зарезервированными ключевыми словами в PHP?
Was this page helpful?