パーサートークンの一覧

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 (int) abstract クラスの抽象化
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG (int) & 型宣言 (PHP 8.1.0 以降で利用可能)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG (int) & 型宣言 (PHP 8.1.0 以降で利用可能)
T_AND_EQUAL (int) &= 代入演算子
T_ARRAY (int) array() array(), array 構文
T_ARRAY_CAST (int) (array) 型キャスト
T_AS (int) as foreach
T_ATTRIBUTE (int) #[ アトリビュート (PHP 8.0.0 以降で利用可能)
T_BAD_CHARACTER (int)   ASCII 32以下の全ての文字。\t (0x09), \n (0x0a) , \r (0x0d) は除く (PHP 7.4.0 以降で利用可能)
T_BOOLEAN_AND (int) && 論理演算子
T_BOOLEAN_OR (int) || 論理演算子
T_BOOL_CAST (int) (bool) or (boolean) 型キャスト
T_BREAK (int) break break
T_CALLABLE (int) callable callable
T_CASE (int) case switch
T_CATCH (int) catch 例外(exceptions)
T_CLASS (int) class クラスとオブジェクト
T_CLASS_C (int) __CLASS__ マジック定数
T_CLONE (int) clone クラスとオブジェクト
T_CLOSE_TAG (int) ?> or %> HTML からの脱出
T_COALESCE (int) ?? 比較演算子
T_COALESCE_EQUAL (int) ??= NULL合体代入演算子 (PHP 7.4.0 以降で利用可能)
T_COMMENT (int) // or #, and /* */ コメント
T_CONCAT_EQUAL (int) .= 代入演算子
T_CONST (int) const クラス定数
T_CONSTANT_ENCAPSED_STRING (int) "foo" or 'bar' 文字列構文
T_CONTINUE (int) continue continue
T_CURLY_OPEN (int) {$ 高度な文字列補間
T_DEC (int) -- 加算/減算演算子
T_DECLARE (int) declare declare
T_DEFAULT (int) default switch
T_DIR (int) __DIR__ マジック定数
T_DIV_EQUAL (int) /= 代入演算子
T_DNUMBER (int) 0.12, etc. 浮動小数点数
T_DO (int) do do..while
T_DOC_COMMENT (int) /** */ PHPDoc 形式のコメント
T_DOLLAR_OPEN_CURLY_BRACES (int) ${ 単純な 変数の文字列補間
T_DOUBLE_ARROW (int) => array 構文
T_DOUBLE_CAST (int) (real), (double) or (float) 型キャスト
T_DOUBLE_COLON (int) :: T_PAAMAYIM_NEKUDOTAYIM を参照ください
T_ECHO (int) echo echo
T_ELLIPSIS (int) ... 関数の引数
T_ELSE (int) else else
T_ELSEIF (int) elseif elseif
T_EMPTY (int) empty empty()
T_ENCAPSED_AND_WHITESPACE (int) " $a" 文字列のパース
T_ENDDECLARE (int) enddeclare declare, 別の構文
T_ENDFOR (int) endfor for, 別の構文
T_ENDFOREACH (int) endforeach foreach, 別の構文
T_ENDIF (int) endif if, 別の構文
T_ENDSWITCH (int) endswitch switch, 別の構文
T_ENDWHILE (int) endwhile while, 別の構文
T_ENUM (int) enum Enumerations (PHP 8.1.0 以降で利用可能)
T_END_HEREDOC (int)   ヒアドキュメント構文
T_EVAL (int) eval() eval()
T_EXIT (int) exit or die exit(), die()
T_EXTENDS (int) extends extends, クラスとオブジェクト
T_FILE (int) __FILE__ マジック定数
T_FINAL (int) final finalキーワード
T_FINALLY (int) finally 例外(exceptions)
T_FN (int) fn アロー関数 (PHP 7.4.0 以降で利用可能)
T_FOR (int) for for
T_FOREACH (int) foreach foreach
T_FUNCTION (int) function 関数
T_FUNC_C (int) __FUNCTION__ マジック定数
T_GLOBAL (int) global 変数のスコープ
T_GOTO (int) goto goto
T_HALT_COMPILER (int) __halt_compiler() __halt_compiler
T_IF (int) if if
T_IMPLEMENTS (int) implements オブジェクト インターフェイス
T_INC (int) ++ 加算/減算演算子
T_INCLUDE (int) include include
T_INCLUDE_ONCE (int) include_once include_once
T_INLINE_HTML (int)   PHP の外部のテキスト
T_INSTANCEOF (int) instanceof 型演算子
T_INSTEADOF (int) insteadof トレイト
T_INTERFACE (int) interface オブジェクト インターフェイス
T_INT_CAST (int) (int) or (integer) 型キャスト
T_ISSET (int) isset() isset()
T_IS_EQUAL (int) == 比較演算子
T_IS_GREATER_OR_EQUAL (int) >= 比較演算子
T_IS_IDENTICAL (int) === 比較演算子
T_IS_NOT_EQUAL (int) != or <> 比較演算子
T_IS_NOT_IDENTICAL (int) !== 比較演算子
T_IS_SMALLER_OR_EQUAL (int) <= 比較演算子
T_LINE (int) __LINE__ マジック定数
T_LIST (int) list() list()
T_LNUMBER (int) 123, 012, 0x1ac, etc. 整数
T_LOGICAL_AND (int) and 論理演算子
T_LOGICAL_OR (int) or 論理演算子
T_LOGICAL_XOR (int) xor 論理演算子
T_MATCH (int) match match (PHP 8.0.0 以降で利用可能)
T_METHOD_C (int) __METHOD__ マジック定数
T_MINUS_EQUAL (int) -= 代入演算子
T_MOD_EQUAL (int) %= 代入演算子
T_MUL_EQUAL (int) *= 代入演算子
T_NAMESPACE (int) namespace 名前空間
T_NAME_FULLY_QUALIFIED (int) \App\Namespace 名前空間 (PHP 8.0.0 以降で利用可能)
T_NAME_QUALIFIED (int) App\Namespace 名前空間 (PHP 8.0.0 以降で利用可能)
T_NAME_RELATIVE (int) namespace\Namespace 名前空間 (PHP 8.0.0 以降で利用可能)
T_NEW (int) new クラスとオブジェクト
T_NS_C (int) __NAMESPACE__ 名前空間
T_NS_SEPARATOR (int) \ 名前空間
T_NUM_STRING (int) "$a[0]" 文字列内の配列の添字
T_OBJECT_CAST (int) (object) 型キャスト
T_OBJECT_OPERATOR (int) -> クラスとオブジェクト
T_NULLSAFE_OBJECT_OPERATOR (int) ?-> クラスとオブジェクト
T_OPEN_TAG (int) <?php, <? or <% HTML からのエスケープ
T_OPEN_TAG_WITH_ECHO (int) <?= or <%= HTML からのエスケープ
T_OR_EQUAL (int) |= 代入演算子
T_PAAMAYIM_NEKUDOTAYIM (int) :: スコープ定義演算子T_DOUBLE_COLONとしても定義されています。
T_PIPE |> パイプ演算子 (PHP 8.5.0 以降で利用可能)
T_PLUS_EQUAL (int) += 代入演算子
T_POW (int) ** 算術演算子
T_POW_EQUAL (int) **= 代入演算子
T_PRINT (int) print print
T_PRIVATE (int) private クラスとオブジェクト
T_PRIVATE_SET (int) private(set) プロパティフック (PHP 8.4.0 以降で利用可能)
T_PROPERTY_C (int) __PROPERTY__ マジック定数
T_PROTECTED (int) protected クラスとオブジェクト
T_PROTECTED_SET (int) protected(set) プロパティフック (PHP 8.4.0 以降で利用可能)
T_PUBLIC (int) public クラスとオブジェクト
T_PUBLIC_SET (int) public(set) プロパティフック (PHP 8.4.0 以降で利用可能)
T_READONLY (int) readonly クラスとオブジェクト (PHP 8.1.0 以降で利用可能)
T_REQUIRE (int) require require
T_REQUIRE_ONCE (int) require_once require_once
T_RETURN (int) return 値を返す
T_SL (int) << ビット演算子
T_SL_EQUAL (int) <<= 代入演算子
T_SPACESHIP (int) <=> 比較演算子
T_SR (int) >> ビット演算子
T_SR_EQUAL (int) >>= 代入演算子
T_START_HEREDOC (int) <<< ヒアドキュメント構文
T_STATIC (int) static 変数のスコープ
T_STRING (int) parent, self, etc. 識別子。たとえば parentself といったオブジェクト指向のキーワード、そして関数名やクラス名などにマッチします。 T_CONSTANT_ENCAPSED_STRING も参照ください。
T_STRING_CAST (int) (string) 型キャスト
T_STRING_VARNAME (int) "${a 可変変数 の文字列補間
T_SWITCH (int) switch switch
T_THROW (int) throw 例外(exceptions)
T_TRAIT (int) trait トレイト
T_TRAIT_C (int) __TRAIT__ __TRAIT__
T_TRY (int) try 例外(exceptions)
T_UNSET (int) unset() unset()
T_UNSET_CAST (int) (unset) 型キャスト
T_USE (int) use 名前空間
T_VAR (int) var クラスとオブジェクト
T_VARIABLE (int) $foo 変数
T_VOID_CAST (void) void キャスト (PHP 8.5.0 以降で利用可能)
T_WHILE (int) while while, do..while
T_WHITESPACE (int) \t \r\n  
T_XOR_EQUAL (int) ^= 代入演算子
T_YIELD (int) yield ジェネレータ
T_YIELD_FROM (int) yield from ジェネレータ

token_name() も参照ください。