PHPerKaigi 2021

Список ключевых слов

У этих слов есть специальное значение в PHP. Некоторые из них представляют собой вещи, которые выглядят как функции, некоторые похожи на константы и так далее, но они ими не являются в действительности. Они - конструкции языка. Вы не можете использовать следующие слова как константы, имена классов, функции или имена методов. Использование их как имён переменных в общем допускается, однако может привести к путанице.

С PHP 7.0.0 эти ключевые слова доступны как имена свойств, констант и методов классов, интерфейсов и трейтов, за исключением того, что class не может использоваться как имя константы.

Зарезервированные слова в PHP
__halt_compiler() abstract and array() as
break callable (с PHP 5.4) case catch class
clone const continue declare default
die() do echo else elseif
empty() enddeclare endfor endforeach endif
endswitch endwhile eval() exit() extends
final finally (с PHP 5.5) fn (с PHP 7.4) for foreach
function global goto (с PHP 5.3) if implements
include include_once instanceof insteadof (с PHP 5.4) interface
isset() list() match (с PHP 8.0) namespace (с PHP 5.3) new
or print private protected public
require require_once return static switch
throw trait (с PHP 5.4) try unset() use
var while xor yield (с PHP 5.5) yield from (начиная с PHP 7.0)
Константы этапа компиляции
__CLASS__ __DIR__ (с PHP 5.3) __FILE__ __FUNCTION__ __LINE__ __METHOD__
__NAMESPACE__ (с PHP 5.3) __TRAIT__ (с PHP 5.4)
add a note add a note

User Contributed Notes 5 notes

martindilling at gmail dot com
7 years ago
RegEx to find all the keywords:

Thomas Hansen
4 years ago
Please note that reserved words are still not allowed to be used as namespace or as part of it:

namespace MyNameSpace\List;


This will fail with a Parse error:  syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING)
8 years ago
Here they are as arrays:

= array('__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor');

$predefined_constants = array('__CLASS__', '__DIR__', '__FILE__', '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__', '__TRAIT__');

Along with get_defined_functions() and get_defined_constants(), this can be useful for checking eval() statements.
Johnny D.
9 months ago



bla at taxistop dot be
2 years ago
This list doesn't include 'self' and 'parent', which I take are indeed keywords.
To Top