パーサトークンの一覧

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_END_HEREDOC   ヒアドキュメント構文
T_ENUM enum 列挙型(Enum) (PHP 8.1.0 以降で利用可能)
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 以降で利用可能)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function 関数
T_FUNC_C __FUNCTION__ 定数
T_GLOBAL global 変数のスコープ
T_GOTO goto goto
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements オブジェクト インターフェイス
T_INC ++ 加算/減算演算子
T_INCLUDE include include
T_INCLUDE_ONCE include_once include_once
T_INLINE_HTML   PHP の外部のテキスト
T_INSTANCEOF instanceof 型演算子
T_INSTEADOF insteadof トレイト
T_INTERFACE interface オブジェクト インターフェイス
T_INT_CAST (int) or (integer) 型キャスト
T_ISSET isset() isset
T_IS_EQUAL == 比較演算子
T_IS_GREATER_OR_EQUAL >= 比較演算子
T_IS_IDENTICAL === 比較演算子
T_IS_NOT_EQUAL != or <> 比較演算子
T_IS_NOT_IDENTICAL !== 比較演算子
T_IS_SMALLER_OR_EQUAL <= 比較演算子
T_LINE __LINE__ 定数
T_LIST list() list
T_LNUMBER 123, 012, 0x1ac, etc 整数
T_LOGICAL_AND and 論理演算子
T_LOGICAL_OR or 論理演算子
T_LOGICAL_XOR xor 論理演算子
T_MATCH match match (PHP 8.0.0 以降で利用可能)
T_METHOD_C __METHOD__ マジック定数
T_MINUS_EQUAL -= 代入演算子
T_MOD_EQUAL %= 代入演算子
T_MUL_EQUAL *= 代入演算子
T_NAMESPACE namespace 名前空間
T_NAME_FULLY_QUALIFIED \App\Namespace 名前空間 (PHP 8.0.0 以降で利用可能)
T_NAME_QUALIFIED App\Namespace 名前空間 (PHP 8.0.0以降で利用可能)
T_NAME_RELATIVE namespace\Namespace 名前空間 (PHP 8.0.0 以降で利用可能)
T_NEW new クラスとオブジェクト
T_NS_C __NAMESPACE__ 名前空間
T_NS_SEPARATOR \ 名前空間 (PHP 5.3.0 以降で使用可能)
T_NUM_STRING "$a[0]" 文字列内の配列の添字
T_OBJECT_CAST (object) 型キャスト
T_OBJECT_OPERATOR -> クラスとオブジェクト
T_NULLSAFE_OBJECT_OPERATOR ?-> クラスとオブジェクト
T_OPEN_TAG <?php, <? or <% HTML からのエスケープ
T_OPEN_TAG_WITH_ECHO <?= or <%= HTML からのエスケープ
T_OR_EQUAL |= 代入演算子
T_PAAMAYIM_NEKUDOTAYIM :: ::T_DOUBLE_COLON としても定義されています。
T_PLUS_EQUAL += 代入演算子
T_POW ** 算術演算子
T_POW_EQUAL **= 代入演算子
T_PRINT print print
T_PRIVATE private クラスとオブジェクト
T_PROTECTED protected クラスとオブジェクト (PHP 5.0.0 以降で使用可能)
T_PUBLIC public クラスとオブジェクト
T_READONLY readonly クラスとオブジェクト (PHP 8.1.0 以降で利用可能)
T_REQUIRE require require
T_REQUIRE_ONCE require_once require_once
T_RETURN return 値を返す
T_SL << ビット演算子
T_SL_EQUAL <<= 代入演算子
T_SPACESHIP <=> 比較演算子
T_SR >> ビット演算子
T_SR_EQUAL >>= 代入演算子
T_START_HEREDOC <<< ヒアドキュメント構文
T_STATIC static 変数スコープ
T_STRING parent、true など 識別子。たとえば parentself といったオブジェクト指向のキーワード、そして関数名やクラス名などにマッチします。
T_STRING_CAST (string) 型キャスト
T_STRING_VARNAME "${a 複雑な (波括弧) 構文
T_SWITCH switch switch
T_THROW throw 例外(exceptions)
T_TRAIT trait トレイト
T_TRAIT_C __TRAIT__ __TRAIT__
T_TRY try 例外(exceptions)
T_UNSET unset() unset
T_UNSET_CAST (unset) 型キャスト
T_USE use 名前空間
T_VAR var クラスとオブジェクト
T_VARIABLE $foo 変数
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= 代入演算子
T_YIELD yield ジェネレータ
T_YIELD_FROM yield from ジェネレータ

token_name も参照ください。