PHPのお勉強!

PHP TOP

パーサトークンの一覧

PHP 言語の種々の部分は、内部的に トークン で表現されています。 不正なトークンのシーケンスが含まれるコードスニペットの場合、 Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10." のようなエラーが発生します。 この場合、トークン == が内部的に T_IS_EQUAL として表現されています。

以下の表に、全てのトークンの一覧を示します。 これらは、全て PHP の定数としても利用できます。

注意: 定数 T_* の使いかた

T_* (T_ で始まる) 定数は、 PHP のベースとなるパーサ基盤に基づいて自動生成されます。 つまり、トークンの具体的な値は、PHP のバージョンが違えば変わる可能性があるということです。 つまり、バージョン間で互換性を保つためには、 コードの中では決して T_* の実際の値を使ってはいけないということです。

異なる PHP のバージョン間で互換性を保った形で T_* 定数を使うには、 PHP の複数のバージョン間で T_* の値が動作するように、 (10000 のような大きな数を使うなどの) 適切な戦略を用いて、未定義の定数をユーザが定義するようにします。

<?php
// PHP 7.4.0 より前のバージョンでは、定数 T_FN は定義されていません
defined('T_FN') || define('T_FN', 10001);

トークン
トークン 構文 参照先
T_ABSTRACT abstract クラスの抽象化
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & 型宣言 (PHP 8.1.0 以降で利用可能)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & 型宣言 (PHP 8.1.0 以降で利用可能)
T_AND_EQUAL &= 代入演算子
T_ARRAY array() array(), array 構文
T_ARRAY_CAST (array) 型キャスト
T_AS as foreach
T_ATTRIBUTE #[ アトリビュート (PHP 8.0.0 以降で利用可能)
T_BAD_CHARACTER   ASCII 32以下の全ての文字。\t (0x09), \n (0x0a) , \r (0x0d) は除く (PHP 7.4.0 以降で利用可能)
T_BOOLEAN_AND && 論理演算子
T_BOOLEAN_OR || 論理演算子
T_BOOL_CAST (bool) or (boolean) 型キャスト
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch 例外(exceptions)
T_CLASS class クラスとオブジェクト
T_CLASS_C __CLASS__ マジック定数
T_CLONE clone クラスとオブジェクト
T_CLOSE_TAG ?> or %> HTML からの脱出
T_COALESCE ?? 比較演算子
T_COALESCE_EQUAL ??= NULL合体代入演算子 (PHP 7.4.0 以降で利用可能)
T_COMMENT // or #, and /* */ コメント
T_CONCAT_EQUAL .= 代入演算子
T_CONST const クラス定数
T_CONSTANT_ENCAPSED_STRING "foo" or 'bar' 文字列構文
T_CONTINUE continue continue
T_CURLY_OPEN {$ 高度な文字列補間
T_DEC -- 可算/減算演算子
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ マジック定数
T_DIV_EQUAL /= 代入演算子
T_DNUMBER 0.12, etc. 浮動小数点数
T_DO do do..while
T_DOC_COMMENT /** */ PHPDoc 形式のコメント
T_DOLLAR_OPEN_CURLY_BRACES ${ 単純な 変数の文字列補間
T_DOUBLE_ARROW => array 構文
T_DOUBLE_CAST (real), (double) or (float) 型キャスト
T_DOUBLE_COLON :: T_PAAMAYIM_NEKUDOTAYIM を参照ください
T_ECHO echo echo
T_ELLIPSIS ... 関数の引数
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" 文字列のパース
T_ENDDECLARE enddeclare declare, 別の構文
T_ENDFOR endfor for, 別の構文
T_ENDFOREACH endforeach foreach, 別の構文
T_ENDIF endif if, 別の構文
T_ENDSWITCH endswitch switch, 別の構文
T_ENDWHILE endwhile while, 別の構文
T_ENUM enum Enumerations (PHP 8.1.0 以降で利用可能)
T_END_HEREDOC   ヒアドキュメント構文
T_EVAL eval() eval()
T_EXIT exit or die exit(), die()
T_EXTENDS extends extends, クラスとオブジェクト
T_FILE __FILE__ マジック定数
T_FINAL final finalキーワード
T_FINALLY finally 例外(exceptions)
T_FN fn アロー関数 (PHP 7.4.0 以降で利用可能)