パーサートークンの一覧

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 <%= escaping from 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() も参照ください。

add a note

User Contributed Notes 2 notes

up
7
nathan at unfinitydesign dot com
17 years ago
T_ENCAPSED_AND_WHITESPACE is whitespace which intersects a group of tokens. For example, an "unexpected T_ENCAPSED_AND_WHITESPACE" error is produced by the following code:

<?php
$main_output_world = 'snakes!';
echo('There are' 10 $main_output_world);
?>

Note the missing concatenation operator between the two strings leads to the whitespace error that is so named above. The concatenation operator instructs PHP to ignore the whitespace between the two code tokens (the so named "encapsed" data"), rather than parse it as a token itself.

The correct code would be:

<?php
$main_output_world = 'snakes!';
echo('There are' . 10 . $main_output_world);
?>

Note the addition of the concatenation operator between each token.
up
2
daniel_rhodes at yahoo dot co dot uk
2 years ago
In the above table of Tokens, it's worth noting that the bracketed text of "available as of PHP x.y.z" can mean one of two things:

[] This *parser token* is available as of PHP x.y.z
    {eg. T_BAD_CHARACTER, T_NAME_QUALIFIED}

[] This *language feature* is available as of PHP x.y.z
    {eg. T_ATTRIBUTE, T_COALESCE_EQUAL}
To Top