キーワードのリスト
これらのキーワードは、PHP では特別な意味があります。これらのいくつかは
関数やメソッドのようなものを表し、いくつかは定数のようなものを表す、
といったようになっていますが、実際にはそうではありません。実際には、
これらは言語を構成するものです。
以下のキーワードはいずれも定数、クラス名、
関数名として使用することはできません。
しかし、クラスやインターフェイス、そしてトレイトの内部では、
プロパティ、定数、メソッドの名前として使うことができます。
但し、class
だけは例外で、これを定数名として使うことはできません。
__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 | finally | fn (PHP 7.4 以降) | for | foreach |
function | global | goto | if | implements |
include | include_once | instanceof | insteadof | interface |
isset() | list() | match (PHP 8.0 以降) | namespace | new |
or | private | protected | public | |
readonly (PHP 8.1.0 以降) * | require | require_once | return | static |
switch | throw | trait | try | unset() |
use | var | while | xor | yield |
yield from |
* readonly
は、関数名として使用できます。
__CLASS__ | __DIR__ | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__ |
__NAMESPACE__ | __TRAIT__ |
+add a note
User Contributed Notes 4 notes
martindilling at gmail dot com ¶
11 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
Thomas Hansen ¶
8 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)
Chris ¶
12 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.