PHP Token names with values

All PHP token names with treir represented values, because they don't have it in the docs!

November 23, 2021
In category Development

PHP Token names with values

This is a list of all PHP tokens and their represented values in decimal and hexadecimal. The list exists in the site here but there are no values because these values may change for new releases. When writing token parsing code, we need token names and values, and I don’t want to dig into the source code to get the values.

Beware that many, if not all values, may be different along version; PHP 7 may not have the same values with PHP 8. Always use the constants, this is just for reference mainly for debugging.

You can also find and donwload the markdown and plain text versions on this gist.

So here is a list of all PHP 8.0 tokens and with their values.

Token Value Hex Syntax Reference
T_THROW 258 0x102 throw Exceptions
T_INCLUDE 260 0x104 include() include
T_INCLUDE_ONCE 261 0x105 include_once() include_once
T_REQUIRE 262 0x106 require() require
T_REQUIRE_ONCE 263 0x107 require_once() require_once
T_LOGICAL_OR 264 0x108 or logical operators
T_LOGICAL_XOR 265 0x109 xor logical operators
T_LOGICAL_AND 266 0x10A and logical operators
T_PRINT 267 0x10B print() print
T_YIELD 268 0x10C yield generators
T_DOUBLE_ARROW 269 0x10D => array syntax
T_YIELD_FROM 270 0x10E yield from generators
T_PLUS_EQUAL 271 0x10F += assignment operators
T_MINUS_EQUAL 272 0x110 -= assignment operators
T_MUL_EQUAL 273 0x111 *= assignment operators
T_DIV_EQUAL 274 0x112 /= assignment operators
T_CONCAT_EQUAL 275 0x113 .= assignment operators
T_MOD_EQUAL 276 0x114 %= assignment operators
T_AND_EQUAL 277 0x115 &= assignment operators
T_OR_EQUAL 278 0x116 |= assignment operators
T_XOR_EQUAL 279 0x117 ^= assignment operators
T_SL_EQUAL 280 0x118 <<= assignment operators
T_SR_EQUAL 281 0x119 >>= assignment operators
T_POW_EQUAL 282 0x11A **= assignment operators
T_COALESCE_EQUAL 283 0x11B ??= assignment operators
T_COALESCE 284 0x11C ?? comparison operators
T_BOOLEAN_OR 285 0x11D || logical operators
T_BOOLEAN_AND 286 0x11E && logical operators
T_IS_EQUAL 287 0x11F == comparison operators
T_IS_NOT_EQUAL 288 0x120 != or <> comparison operators
T_IS_IDENTICAL 289 0x121 === comparison operators
T_IS_NOT_IDENTICAL 290 0x122 !== comparison operators
T_SPACESHIP 291 0x123 <=> comparison operators
T_IS_SMALLER_OR_EQUAL 292 0x124 <= comparison operators
T_IS_GREATER_OR_EQUAL 293 0x125 >= comparison operators
T_SL 294 0x126 << bitwise operators
T_SR 295 0x127 >> bitwise operators
T_INSTANCEOF 296 0x128 instanceof type operators
T_INT_CAST 297 0x129 (int) or (integer) type-casting
T_DOUBLE_CAST 298 0x12A (real), (double) or (float) type-casting
T_STRING_CAST 299 0x12B (string) type-casting
T_ARRAY_CAST 300 0x12C (array) type-casting
T_OBJECT_CAST 301 0x12D (object) type-casting
T_BOOL_CAST 302 0x12E (bool) or (boolean) type-casting
T_UNSET_CAST 303 0x12F (unset) type-casting
T_POW 304 0x130 ** arithmetic operators
T_CLONE 305 0x131 clone classes and objects
T_ELSEIF 307 0x133 elseif elseif
T_ELSE 308 0x134 else else
T_LNUMBER 309 0x135 123, 012, 0x1ac, etc. integers
T_DNUMBER 310 0x136 0.12, etc. floating point numbers
T_NAME_FULLY_QUALIFIED 312 0x138 \App\Namespace namespaces
T_VARIABLE 315 0x13B $foo variables
T_INLINE_HTML 316 0x13C text outside PHP
T_ENCAPSED_AND_WHITESPACE 317 0x13D " $a" constant part of string with variables
T_CONSTANT_ENCAPSED_STRING 318 0x13E "foo" or 'bar' string syntax
T_STRING_VARNAME 319 0x13F "${a complex variable parsed syntax
T_NUM_STRING 320 0x140 "$a[0]" numeric array index inside string
T_EVAL 321 0x141 eval() eval()
T_NEW 322 0x142 new classes and objects
T_EXIT 323 0x143 exit or die exit() die()
T_IF 324 0x144 if if
T_ENDIF 325 0x145 endif if alternative syntax
T_ECHO 326 0x146 echo echo
T_DO 327 0x147 do do..while
T_WHILE 328 0x148 while while do..while
T_ENDWHILE 329 0x149 endwhile while alternative syntax
T_FOR 330 0x14A for for
T_ENDFOR 331 0x14B endfor for alternative syntax
T_FOREACH 332 0x14C foreach foreach
T_ENDFOREACH 333 0x14D endforeach foreach alternative syntax
T_DECLARE 334 0x14E declare declare
T_ENDDECLARE 335 0x14F enddeclare declare alternative syntax
T_AS 336 0x150 as foreach
T_SWITCH 337 0x151 switch switch
T_ENDSWITCH 338 0x152 endswitch switch alternative syntax
T_CASE 339 0x153 case switch
T_DEFAULT 340 0x154 default switch
T_MATCH 341 0x155 match match
T_BREAK 342 0x156 break break
T_CONTINUE 343 0x157 continue continue
T_GOTO 344 0x158 goto goto
T_FUNCTION 345 0x159 function functions
T_FN 346 0x15A fn arrow functions
T_CONST 347 0x15B const class constants
T_RETURN 348 0x15C return returning values
T_TRY 349 0x15D try Exceptions
T_CATCH 350 0x15E catch Exceptions
T_FINALLY 351 0x15F finally Exceptions
T_USE 352 0x160 use namespaces
T_INSTEADOF 353 0x161 insteadof Traits
T_GLOBAL 354 0x162 global variable scope
T_STATIC 355 0x163 static variable scope
T_ABSTRACT 356 0x164 abstract Class Abstraction
T_FINAL 357 0x165 final Final Keyword
T_PRIVATE 358 0x166 private classes and objects
T_PROTECTED 359 0x167 protected classes and objects
T_PUBLIC 360 0x168 public classes and objects
T_VAR 361 0x169 var classes and objects
T_UNSET 362 0x16A unset() unset()
T_ISSET 363 0x16B isset() isset()
T_EMPTY 364 0x16C empty empty()
T_HALT_COMPILER 365 0x16D __halt_compiler() __halt_compiler
T_CLASS 366 0x16E class classes and objects
T_TRAIT 367 0x16F trait Traits
T_INTERFACE 368 0x170 interface Object Interfaces
T_EXTENDS 369 0x171 extends extends classes and objects
T_IMPLEMENTS 370 0x172 implements Object Interfaces
T_NAMESPACE 371 0x173 namespace namespaces
T_LIST 372 0x174 list() list()
T_ARRAY 373 0x175 array() array() array syntax
T_CALLABLE 374 0x176 callable callable
T_LINE 375 0x177 __LINE__ magic constants
T_FILE 376 0x178 __FILE__ magic constants
T_DIR 377 0x179 __DIR__ magic constants
T_CLASS_C 378 0x17A __CLASS__ magic constants
T_METHOD_C 380 0x17C __METHOD__ magic constants
T_FUNC_C 381 0x17D __FUNCTION__ magic constants
T_NS_C 382 0x17E __NAMESPACE__ namespaces
T_ATTRIBUTE 383 0x17F #[ attributes
T_INC 384 0x180 ++ incrementing/decrementing operators
T_DEC 385 0x181 -- incrementing/decrementing operators
T_OBJECT_OPERATOR 386 0x182 -> classes and objects
T_NULLSAFE_OBJECT_OPERATOR 387 0x183 ?-> classes and objects
T_COMMENT 388 0x184 // or #, and /* */ comments
T_DOC_COMMENT 389 0x185 /** */ PHPDoc style comments
T_OPEN_TAG 390 0x186 <?php, <? or <% escaping from HTML
T_OPEN_TAG_WITH_ECHO 391 0x187 <?= or <%= escaping from HTML
T_CLOSE_TAG 392 0x188 ?> or %> escaping from HTML
T_WHITESPACE 393 0x189 \t \r\n
T_START_HEREDOC 394 0x18A <<< heredoc syntax
T_END_HEREDOC 395 0x18B heredoc syntax
T_DOLLAR_OPEN_CURLY_BRACES 396 0x18C ${ complex variable parsed syntax
T_CURLY_OPEN 397 0x18D {$ complex variable parsed syntax
T_NS_SEPARATOR 399 0x18F \ namespaces
T_ELLIPSIS 400 0x190 ... function arguments
0 0

comments powered by Disqus