UPDATE:2023年05月29日
PHP の 予約語(キーワード)
予約語簡単まとめ
- 予約語 はPHPで予め予約されている 単語
- 予約語 は 特別な意味を持っている
- 予約語 は 大文字/小文字を区別しない
- 予約語 は キーワード、定義済のクラス、定義済みの定数 がある
- 予約語 は 関数名、メソッド名、クラス名、定数名 として使用できない
PHP7.0.0から規制が緩和され、クラスやインターフェイス、トレイトの内部では、予約語をプロパティ名、定数名、メソッド名として使うことが出来るようになりました。
予約語とは
- 予約語は
・PHP言語で予め「予約」されている単語
・特別な意味を持っている
・大文字/小文字が区別されない
・キーワード、定義済のクラス、定義済みの定数 がある
・関数名、メソッド名、クラス名、定数名として使用できない
※予約語は変数名として使用できます。ですが、混同してしまわないように気を付けて下さい。
予約語とは、PHP言語で予め「予約」されている単語のことです。予約語はPHP自体の機能を実現するために特別な意味を持っています。従って、これらの予約語として使用されている単語は、関数名、メソッド名、クラス名、定数名として使用できません。また、予約語は大文字/小文字が区別されません。さらに、PHPの組み込み関数と同じ名前の識別子を使用することはできません。
予約語は関数、メソッド、定数、などを表すという理解がなされていますが、実際はPHP言語を構成するものです。
例えば、if や else は 予約語 になります。PHPの条件式を作成するために必要な特別な意味を持っています。
1 2 3 4 5 | <!-- サンプルコード --> <?php if(true) echo '真です。'; else echo '偽です。'; ?> |
if や else は関数やメソッドではなく、言語構成の単語だということが分かります。
予約語を関数名にしてしまうと
予約語の echo を関数名にして関数を定義すると、
1 2 3 4 5 6 | <?php function echo(){ print "こんにちは<br>\n"; } echo(); ?> |
構文解析エラー(Parse error)が発生します。
予約語を変数名にできる
予約語を変数名で利用することは出来ますが、混乱を招くので避けるのが良いでしょう。
1 2 3 4 | <?php $echo = 'こんにちは'; echo $echo."<br>\n"; ?> |
結果は
となります。
予約語のキーワード
予約語のキーワード
PHPの予約語として登録されている キーワード です。
__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 は、関数名として使用可能。
int (PHP7 以降) | float (PHP7 以降) | bool (PHP7 以降) | string (PHP7 以降) | true (PHP7 以降) |
false (PHP7 以降) | null (PHP7 以降) | void (PHP7.1 以降) | iterable (PHP7.1 以降) | object (PHP7.2 以降) |
resource (PHP 7 以降) | mixed (PHP 7 以降) | numeric (PHP 7 以降) | never (PHP 8.1 以降) | enum |
enum、resource、numeric これらの予約語は弱い予約語として確保されており、クラスやインターフェイス、トレイトの名前として使用できます。
コンパイル時の定数(マジカル定数)
__CLASS__ | __DIR__ (PHP 5.3 以降) | __FILE__ | __FUNCTION__ | __LINE__ |
__METHOD__ | __NAMESPACE__ (PHP 5.3 以降) | __TRAIT__ (PHP 5.4 以降) | ClassName::class |
定義済のクラス
PHPの予約語としてPHPに標準定義されているクラスです。同じ名前のクラスを定義することは出来ません。
Directory | stdClass | __PHP_Incomplete_Class | Exception |
ErrorException | php_user_filter | Closure | Generator |
ArithmeticError | AssertionError | DivisionByZeroError | Error |
Throwable | ParseError | TypeError |
定義済みの定数
PHPの予約語としてPHPのコアで定義されている定数です。PHP、Zend engine、SAPI モジュールも含みます。同じ名前の定数を定義することはできません。例外としてクラス内のconstで定義する定数名としては使用が可能です。
PHP_VERSION (string) | PHP_MAJOR_VERSION (int) | PHP_MINOR_VERSION (int) | PHP_RELEASE_VERSION (int) |
PHP_VERSION_ID (int) | PHP_EXTRA_VERSION (string) | PHP_ZTS (int) | PHP_DEBUG (int) |
PHP_MAXPATHLEN (int) | PHP_OS (string) | PHP_OS_FAMILY (string) | PHP_SAPI (string) |
PHP_EOL (string) | PHP_INT_MAX (int) | PHP_INT_MIN (int) | PHP_INT_SIZE (int) |
PHP_FLOAT_DIG (int) | PHP_FLOAT_EPSILON (float) | PHP_FLOAT_MIN (float) | PHP_FLOAT_MAX (float) |
DEFAULT_INCLUDE_PATH (string) | PEAR_INSTALL_DIR (string) | PEAR_EXTENSION_DIR (string) | PHP_EXTENSION_DIR (string) |
PHP_PREFIX (string) | PHP_BINDIR (string) | PHP_BINARY (string) | PHP_MANDIR (string) |
PHP_LIBDIR (string) | PHP_DATADIR (string) | PHP_SYSCONFDIR (string) | PHP_LOCALSTATEDIR (string) |
PHP_CONFIG_FILE_PATH (string) | PHP_CONFIG_FILE_SCAN_DIR (string) | PHP_SHLIB_SUFFIX (string) | PHP_FD_SETSIZE (string) |
E_ERROR (int) | E_WARNING (int) | E_PARSE (int) | E_NOTICE (int) |
E_CORE_ERROR (int) | E_CORE_WARNING (int) | E_COMPILE_ERROR (int) | E_COMPILE_WARNING (int) |
E_USER_ERROR (int) | E_USER_WARNING (int) | E_USER_NOTICE (int) | E_RECOVERABLE_ERROR (int) |
E_DEPRECATED (int) | E_USER_DEPRECATED (int) | E_ALL (int) | E_STRICT (int) |
__COMPILER_HALT_OFFSET__ (int) | true (bool) | false (bool) | null (null) |
PHP_WINDOWS_EVENT_CTRL_C (int) | PHP_WINDOWS_EVENT_CTRL_BREAK (int) |
PHP7.0.0から予約語規制の緩和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php class KEYWORDS{ //メソッド public function if(){ echo "if<br>\n"; } public function else(){ echo "else<br>\n"; } public function echo(){ echo "echo<br>\n"; } //プロパティ public $return = "return"; public $static = "static"; public $switch = "switch"; } //メソッド $KEYWORDS = new KEYWORDS(); $KEYWORDS->if(); $KEYWORDS->else(); $KEYWORDS->echo(); //プロパティ echo $KEYWORDS->return."<br>\n"; echo $KEYWORDS->static."<br>\n"; echo $KEYWORDS->switch."<br>\n"; ?> |
else
echo
return
static
switch
タグ(=記事関連ワード)
日付
最終更新日:2023年05月29日