PHP 8.6.0 Beta 1 is available for testing

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

Ключевые слова — элементы синтаксиса языка PHP. Отдельные слова похожи на функции, другие — на константы, но корректный термин для ключевых слов — языковые конструкции. Следующие ключевые слова нельзя указывать как названия классов, функций или глобальных констант, но правила языка разрешают указывать ключевые слова как названия свойств, констант, методов классов, интерфейсов и трейтов, с оговоркой, слово class нельзя указывать как название константы.

Ключевые слова PHP
final finally fn (начиная с PHP 7.4) for foreach
isset() list() match (начиная с PHP 8.0) namespace new
readonly (начиная с PHP 8.1.0) * require require_once return static

* Ключевое слово readonly — допустимое название функции.

Константы этапа компиляции

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 4 notes

up
22
martindilling at gmail dot com
13 years ago
RegEx to find all the keywords:
\b(
(a(bstract|nd|rray|s))|
(c(a(llable|se|tch)|l(ass|one)|on(st|tinue)))|
(d(e(clare|fault)|ie|o))|
(e(cho|lse(if)?|mpty|nd(declare|for(each)?|if|switch|while)|val|x(it|tends)))|
(f(inal|or(each)?|unction))|
(g(lobal|oto))|
(i(f|mplements|n(clude(_once)?|st(anceof|eadof)|terface)|sset))|
(n(amespace|ew))|
(p(r(i(nt|vate)|otected)|ublic))|
(re(quire(_once)?|turn))|
(s(tatic|witch))|
(t(hrow|r(ait|y)))|
(u(nset|se))|
(__halt_compiler|break|list|(x)?or|var|while)
)\b
up
17
Thomas Hansen
9 years ago
Please note that reserved words are still not allowed to be used as namespace or as part of it:
<?php
namespace MyNameSpace\List;
class Test
{
}
?>

This will fail with a Parse error: syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING)
up
11
Chris
13 years ago
Here they are as arrays:
<?php
$keywords = 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.
up
1
1205784393 at qq dot com
12 days ago
"enum" should be a keyword rather than a reserved word
+Добавить

AltStyle によって変換されたページ (->オリジナル) /