Varias partes del lenguaje PHP son representadas internamente por tokens.
Un fragmento de código que contenga una secuencia no válida de tokens puede dar lugar a errores como
Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10."
donde el token ==
está representado internamente por T_IS_EQUAL
.
La siguiente tabla enumera todas los tokens. También están disponibles como constantes PHP.
Nota: Uso de las constantes T_*
Los valores de las constantes T_* se generan automáticamente basándose en la infraestructura del analizador subyacente de PHP. Esto significa que el valor concreto de un token puede cambiar entre dos versiones de PHP. Esto sigifica que el código no debería nunca depender directamente de los valores originales de las constantes T_* tomadas de la versión X.Y.Z de PHP, para proporcionar cierta compatibildad entre múltiples versiones PHP.
Para hacer uso de las constantes T_* a través de múltiples versiones de PHP, las constantes indefinidas pueden ser definidas por el usuario (usando números grandes como
10000
) y una estrategia apropiada que funcione tanto con las versiones de PHP como con los valores T_*.<?php
// Antes de PHP 7.4.0, T_FN no está definido.
defined('T_FN') || define('T_FN', 10001);
Elemento | Sintaxis | Referencia |
---|---|---|
T_ABSTRACT |
abstract | Abstracción de clases |
T_AND_EQUAL |
&= | operadores de asignación |
T_ARRAY |
array() | array(), sintaxis de array |
T_ARRAY_CAST |
(array) | conversión de tipos |
T_AS |
as | foreach |
T_ATTRIBUTE |
#[ | attributes (disponible a partir de PHP 8.0.0) |
T_BAD_CHARACTER |
todo lo que haya por debajo de ASCII 32 excepto \t (0x09), \n (0x0a) y \r (0x0d) (disponible a partir de PHP 7.4.0) | |
T_BOOLEAN_AND |
&& | operadores lógios |
T_BOOLEAN_OR |
|| | operadores lógicos |
T_BOOL_CAST |
(bool) o (boolean) | conversión de tipos |
T_BREAK |
break | break |
T_CALLABLE |
callable | callable |
T_CASE |
case | switch |
T_CATCH |
catch | Excepciones |
T_CHARACTER |
ya no se utiliza | |
T_CLASS |
class | clases y objetos |
T_CLASS_C |
__CLASS__ | constantes mágicas |
T_CLONE |
clone | clases y objetos |
T_CLOSE_TAG |
?> o %> | salir de HTML |
T_COALESCE |
?? | operadores de comparación |
T_COALESCE_EQUAL |
??= | operadores de asignación (disponible a partir de PHP 7.4.0) |
T_COMMENT |
// o #, y /* */ | comentarios |
T_CONCAT_EQUAL |
.= | operadores de asignación |
T_CONST |
const | constantes |
T_CONSTANT_ENCAPSED_STRING |
"foo" o 'bar' | sintaxis de string |
T_CONTINUE |
continue | continue |
T_CURLY_OPEN |
{$ | sintaxis compleja |
T_DEC |
-- | operadores de incremento/decremento |
T_DECLARE |
declare | declare |
T_DEFAULT |
default | switch |
T_DIR |
__DIR__ | constantes mágicas |
T_DIV_EQUAL |
/= | operadores de asignación |
T_DNUMBER |
0.12, etc. | números de punto flotante |
T_DO |
do | do..while |
T_DOC_COMMENT |
/** */ | comentarios tipo PHPDoc |
T_DOLLAR_OPEN_CURLY_BRACES |
${ | sintaxis compleja |
T_DOUBLE_ARROW |
=> | sintaxis de array |
T_DOUBLE_CAST |
(real), (double) o (float) | conversión de tipos |
T_DOUBLE_COLON |
:: | véase T_PAAMAYIM_NEKUDOTAYIM más abajo |
T_ECHO |
echo | echo |
T_ELLIPSIS |
... | argumentos de función |
T_ELSE |
else | else |
T_ELSEIF |
elseif | elseif |
T_EMPTY |
empty | empty() |
T_ENCAPSED_AND_WHITESPACE |
" $a" | parte constante de un string con variables |
T_ENDDECLARE |
enddeclare | declare, sintaxis alternativa |
T_ENDFOR |
endfor | for, sintaxis alternativa |
T_ENDFOREACH |
endforeach | foreach, sintaxis alternativa |
T_ENDIF |
endif | if, sintaxis alternativa |
T_ENDSWITCH |
endswitch | switch, sintaxis alternativa |
T_ENDWHILE |
endwhile | while, sintaxis alternativa |
T_END_HEREDOC |
sintaxis de heredoc | |
T_EVAL |
eval() | eval() |
T_EXIT |
exit o die | exit(), die() |
T_EXTENDS |
extends | extends, clases y objetos |
T_FILE |
__FILE__ | constantes mágicas |
T_FINAL |
final | Palabra clave Final |
T_FINALLY |
finally | Excepciones |
T_FN |
fn | funciones flecha (disponible a partir de PHP 7.4.0) |
T_FOR |
for | for |
T_FOREACH |
foreach | foreach |
T_FUNCTION |
function | funciones |
T_FUNC_C |
__FUNCTION__ | constantes mágicas |
T_GLOBAL |
global | ámbito de las variables |
T_GOTO |
goto | control-structures.goto.html |
T_HALT_COMPILER |
__halt_compiler() | __halt_compiler |
T_IF |
if | if |
T_IMPLEMENTS |
implements | Interfaces de objetos |
T_INC |
++ | operadores de incremento/decremento |
T_INCLUDE |
include() | include |
T_INCLUDE_ONCE |
include_once() | include_once |
T_INLINE_HTML |
texto fuera de PHP | |
T_INSTANCEOF |
instanceof | operadores de tipo |
T_INSTEADOF |
insteadof | Rasgos (Traits) |
T_INTERFACE |
interface | Interfaces de objetos |
T_INT_CAST |
(int) o (integer) | type-casting |
T_ISSET |
isset() | isset() |
T_IS_EQUAL |
== | operadores de comparación |
T_IS_GREATER_OR_EQUAL |
>= | operadores de comparación |
T_IS_IDENTICAL |
=== | operadores de comparación |
T_IS_NOT_EQUAL |
!= o <> | operadores de comparación |
T_IS_NOT_IDENTICAL |
!== | operadores de comparación |
T_IS_SMALLER_OR_EQUAL |
<= | operadores de comparación |
T_LINE |
__LINE__ | constantes mágicas |
T_LIST |
list() | list() |
T_LNUMBER |
123, 012, 0x1ac, etc. | números enteros |
T_LOGICAL_AND |
and | operadores lógicos |
T_LOGICAL_OR |
or | operadores lógicos |
T_LOGICAL_XOR |
xor | operadores lógicos |
T_METHOD_C |
__METHOD__ | constantes mágicas |
T_MINUS_EQUAL |
-= | operadores de asignación |
T_MOD_EQUAL |
%= | operadores de asignación |
T_MUL_EQUAL |
*= | operadores de asignación |
T_NAMESPACE |
namespace | espacios de nombres |
T_NEW |
new | clases y objetos |
T_NS_C |
__NAMESPACE__ | espacios de nombres |
T_NS_SEPARATOR |
\ | espacios de nombres |
T_NUM_STRING |
"$a[0]" | array de índice numérico dentro de un string |
T_OBJECT_CAST |
(object) | conversión de tipos |
T_OBJECT_OPERATOR |
-> | clases y objetos |
T_NULLSAFE_OBJECT_OPERATOR |
?-> | clases y objetos |
T_OPEN_TAG |
<?php, <? o <% | salir de HTML |
T_OPEN_TAG_WITH_ECHO |
<?= o <%= | salir de HTML |
T_OR_EQUAL |
|= | operadores de asignación |
T_PAAMAYIM_NEKUDOTAYIM |
:: | ::. También se define como
T_DOUBLE_COLON . |
T_PLUS_EQUAL |
+= | operadores de asignación |
T_POW |
** | operadores aritméticos |
T_POW_EQUAL |
**= | operadores de asignación |
T_PRINT |
print() | |
T_PRIVATE |
private | clases y objetos |
T_PROTECTED |
protected | clases y objetos |
T_PUBLIC |
public | clases y objetos |
T_REQUIRE |
require() | require |
T_REQUIRE_ONCE |
require_once() | require_once |
T_RETURN |
return | valores de retorno |
T_SL |
<< | operadores a nivel de bits |
T_SL_EQUAL |
<<= | operadores de asignación |
T_SPACESHIP |
<=> | operadores de comparación |
T_SR |
>> | operadores a nivel de bits |
T_SR_EQUAL |
>>= | operadores de asignación |
T_START_HEREDOC |
<<< | sintaxis de heredoc |
T_STATIC |
static | ámbito de las variables |
T_STRING |
parent, self, etc. |
se comparan identificadores, p.ej. palabras clave como parent y
self , nombres de funciones, nombres de clases y más.
Véase también T_CONSTANT_ENCAPSED_STRING .
|
T_STRING_CAST |
(string) | conversión de tipos |
T_STRING_VARNAME |
"${a | sintaxis compleja |
T_SWITCH |
switch | switch |
T_THROW |
throw | Excepciones |
T_TRAIT |
trait | Rasgos (Traits) |
T_TRAIT_C |
__TRAIT__ | __TRAIT__ |
T_TRY |
try | Excepciones |
T_UNSET |
unset() | unset() |
T_UNSET_CAST |
(unset) | conversión de tipos |
T_USE |
use | espacios de nombres |
T_VAR |
var | clases y objetos |
T_VARIABLE |
$foo | variables |
T_WHILE |
while | while, do..while |
T_WHITESPACE |
\t \r\n | |
T_XOR_EQUAL |
^= | operadores de asignación |
T_YIELD |
yield | generadores |
T_YIELD_FROM |
yield from | generadores |
Véase también token_name().