付録
PHP Manual

パーサトークンの一覧

PHP 言語の種々の部分は、内部的に T_SR のように表されています。PHP は、 パーサエラーが発生した際に、これらの ID を "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." のように出力します。

ここでは、T_SR が何を意味するのかを知っていることを仮定しています。 この対応が分からない方のために、以下にこれらの ID、PHP 構文、マニュアルでの 適当な参照先の一覧を示します。

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

以下のトークンは、すべて PHP の定数としても定義されています。その値は、 PHP のベースとなるパーサ基盤に基づいて自動生成されます。 つまり、トークンの具体的な値は、PHP のバージョンが違えば変わる可能性があるということです。 たとえば T_FILE の値は PHP 5.3 では 365 ですが、PHP 5.4 ではこの値は T_TRAIT を表し、T_FILE の値は 369 となります。 つまり、コードの中では決して T_* の実際の値を使ってはいけないということです。 それは PHP X.Y.Z でたまたまその値になっているだけであり、 その値に依存してしまえば PHP のバージョンが変わったときに互換性がなくなってしまいます。 その代わりに、コードでは独自の値 (たとえば 10000 のような大きな値) を使い、PHP のバージョンや T_* の値が変わってもうまく動作するようにしておきましょう。

トークン
トークン 構文 参照先
T_ABSTRACT abstract クラスの抽象化 (PHP 5.0.0 以降で使用可能)
T_AND_EQUAL &= 代入演算子
T_ARRAY array() array(), array 構文
T_ARRAY_CAST (array) 型キャスト
T_AS as foreach
T_BAD_CHARACTER   ASCII 32以下の全ての文字。\t (0x09), \n (0x0a) , \r (0x0d) は除く
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) (PHP 5.0.0 以降で使用可能)
T_CHARACTER   今では使用されていません
T_CLASS class クラスとオブジェクト
T_CLASS_C __CLASS__ マジック定数
T_CLONE clone クラスとオブジェクト
T_CLOSE_TAG ?> or %> HTML からの脱出
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__ マジック定数 (PHP 5.3.0 以降で使用可能)
T_DIV_EQUAL /= 代入演算子
T_DNUMBER 0.12, etc 浮動小数点数
T_DOC_COMMENT /** */ PHPDoc 形式のコメント
T_DO do do..while
T_DOLLAR_OPEN_CURLY_BRACES ${ complex variable parsed syntax
T_DOUBLE_ARROW => array 構文
T_DOUBLE_CAST (real), (double) or (float) 型キャスト
T_DOUBLE_COLON :: 下の T_PAAMAYIM_NEKUDOTAYIM を参照ください。
T_ECHO echo echo
T_ELLIPSIS ... 関数の引数 (PHP 5.6.0 以降で使用可能)
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   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) (PHP 5.5.0 以降で使用可能)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function or cfunction 関数
T_FUNC_C __FUNCTION__ 定数
T_GLOBAL global 変数のスコープ
T_GOTO goto (PHP 5.3.0 以降で使用可能)
T_HALT_COMPILER __halt_compiler() __halt_compiler (PHP 5.1.0 以降で使用可能)
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 トレイト (PHP 5.4.0 以降で使用可能)
T_INT_CAST (int) or (integer) 型キャスト
T_INTERFACE interface オブジェクト インターフェイス
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_SPACESHIP <=> 比較演算子 (PHP 7.0.0 以降で使用可能)
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_METHOD_C __METHOD__ マジック定数
T_MINUS_EQUAL -= 代入演算子
T_MOD_EQUAL %= 代入演算子
T_MUL_EQUAL *= 代入演算子
T_NAMESPACE namespace 名前空間 (PHP 5.3.0 以降で使用可能)
T_NS_C __NAMESPACE__ 名前空間 (PHP 5.3.0 以降で使用可能)
T_NS_SEPARATOR \ 名前空間 (PHP 5.3.0 以降で使用可能)
T_NEW new クラスとオブジェクト
T_NUM_STRING "$a[0]" 文字列内の配列の添字
T_OBJECT_CAST (object) 型キャスト
T_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 ** 代数演算子 (PHP 5.6.0 以降で使用可能)
T_POW_EQUAL **= 代数演算子 (PHP 5.6.0 以降で使用可能)
T_PRINT print() print
T_PRIVATE private クラスとオブジェクト
T_PUBLIC public クラスとオブジェクト
T_PROTECTED protected クラスとオブジェクト (PHP 5.0.0 以降で使用可能)
T_REQUIRE require() require
T_REQUIRE_ONCE require_once() require_once
T_RETURN return 値を返す
T_SL << ビット演算子
T_SL_EQUAL <<= 代入演算子
T_SR >> ビット演算子
T_SR_EQUAL >>= 代入演算子
T_START_HEREDOC <<< 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 トレイト (PHP 5.4.0 以降で使用可能)
T_TRAIT_C __TRAIT__ __TRAIT__ (PHP 5.4.0 以降で使用可能)
T_TRY try 例外(exceptions)
T_UNSET unset() unset()
T_UNSET_CAST (unset) 型キャスト
T_USE use 名前空間 (PHP 5.3.0 以降で使用可能、PHP 4.0.0 以降で予約済み)
T_VAR var クラスとオブジェクト
T_VARIABLE $foo 変数
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= 代入演算子
T_YIELD yield ジェネレータ (PHP 5.5.0 以降で使用可能)

token_name() も参照ください。


付録
PHP Manual