PHP 8.4.2 Released!

Liste des jetons de l'analyseur

Diverses parties du langage PHP sont représentées en interne par des jetons. Un morceau de code qui contient une séquence invalide de jetons peut mener à des erreurs telles que Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10." où le jeton == est représenté en interne par T_IS_EQUAL.

Le tableau suivant liste tous les jetons. Ils sont aussi disponibles en tant que constantes PHP.

Note: Utilisation des constantes T_*

Les valeurs des constantes T_* sont générées automatiquement en fonction de l'infrastructure sous-jacente de l'analyseur PHP. Ceci signifie que la valeur concrète d'un jeton peut changer entre deux versions de PHP. Ceci signifie que votre code ne doit jamais utiliser la valeur littérale des constantes T_* d'une version PHP X.Y.Z, pour fournir une certaine compatibilité entre plusieurs versions de PHP.

Pour utiliser les constantes T_* à travers plusieurs versions de PHP, les constantes indéfinies peuvent être définies par l'utilisateur (en utilisant des nombres larges tels que 10000) avec une stratégie appropriée qui fonctionnera avec les deux versions de PHP et les valeurs de T_*.

<?php
// Antérieur à PHP 7.4.0, T_FN n'est pas définie.
defined('T_FN') || define('T_FN', 10001);

Jetons
Jeton Syntaxe Référence
T_ABSTRACT abstract Abstraction de classes
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & Déclarations de type (disponible à partir de PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & Déclarations de type (disponible à partir de PHP 8.1.0)
T_AND_EQUAL &= opérateurs d'assignation
T_ARRAY array() array(), syntaxe de tableau
T_ARRAY_CAST (array) transtypage
T_AS as foreach
T_ATTRIBUTE #[ attributs (disponible à partir de PHP 8.0.0)
T_BAD_CHARACTER   Tous les caractères en dessous de ASCII 32 exceptés \t (0x09), \n (0x0a) et \r (0x0d) (disponible à partir de PHP 7.4.0)
T_BOOLEAN_AND && opérateurs logiques
T_BOOLEAN_OR || opérateurs logiques
T_BOOL_CAST (bool) ou (boolean) transtypage
T_BREAK break; break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch Les exceptions
T_CLASS class classes et objets
T_CLASS_C __CLASS__ constantes magiques
T_CLONE clone classes et objets
T_CLOSE_TAG ?> or %> échapper depuis le HTML
T_COALESCE ?? opérateurs de comparaison
T_COALESCE_EQUAL ??= opérateurs d'assignation (disponible à partir de PHP 7.4.0)
T_COMMENT // ou #, et /* */ commentaires
T_CONCAT_EQUAL .= opérateurs d'assignation
T_CONST const constantes de classe
T_CONSTANT_ENCAPSED_STRING "foo" ou 'bar' syntaxe chaîne de caractères
T_CONTINUE continue continue
T_CURLY_OPEN {$ syntaxe d'interpolation de chaînes de variables avancée
T_DEC -- opérateurs d'incrémentation/décrémentation
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ constantes magiques
T_DIV_EQUAL /= opérateurs d'assignation
T_DNUMBER 0.12, etc. nombres à virgule flottante
T_DO do do..while
T_DOC_COMMENT /** */ style de commentaire dans la PHPDoc
T_DOLLAR_OPEN_CURLY_BRACES ${ interpolation de chaîne de variables de base
T_DOUBLE_ARROW => syntaxe de tableau
T_DOUBLE_CAST (real), (double) ou (float) transtypage
T_DOUBLE_COLON :: Voyez T_PAAMAYIM_NEKUDOTAYIM plus bas
T_ECHO echo echo
T_ELLIPSIS ... les arguments de fonction
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" partie des constantes d'une chaîne de caractères contenant des variables
T_ENDDECLARE enddeclare declare, syntaxe alternative
T_ENDFOR endfor for, syntaxe alternative
T_ENDFOREACH endforeach foreach, syntaxe alternative
T_ENDIF endif if, syntaxe alternative
T_ENDSWITCH endswitch switch, syntaxe alternative
T_ENDWHILE endwhile while, syntaxe alternative
T_ENUM enum Énumérations (disponible à partir de PHP 8.1.0)
T_END_HEREDOC   syntaxe heredoc
T_EVAL eval() eval()
T_EXIT exit ou die exit(), die()
T_EXTENDS extends extends, classes et objets
T_FILE __FILE__ constantes magiques
T_FINAL final Mot-clé "final"
T_FINALLY finally Les exceptions
T_FN fn fonctions fléchées (disponible à partir de PHP 7.4.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function fonctions
T_FUNC_C __FUNCTION__ constantes magiques
T_GLOBAL global scope de variable
T_GOTO goto goto
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements Interfaces
T_INC ++ opérateurs d'incrémentation/décrémentation
T_INCLUDE include include
T_INCLUDE_ONCE include_once include_once
T_INLINE_HTML   texte en dehors de PHP
T_INSTANCEOF instanceof opérateurs de type
T_INSTEADOF insteadof Traits
T_INTERFACE interface Interfaces
T_INT_CAST (int) ou (integer) transtypage
T_ISSET isset() isset()
T_IS_EQUAL == opérateurs de comparaison
T_IS_GREATER_OR_EQUAL >= opérateurs de comparaison
T_IS_IDENTICAL === opérateurs de comparaison
T_IS_NOT_EQUAL != ou <> opérateurs de comparaison
T_IS_NOT_IDENTICAL !== opérateurs de comparaison
T_IS_SMALLER_OR_EQUAL <= opérateurs de comparaison
T_LINE __LINE__ constantes magiques
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc. entiers
T_LOGICAL_AND and opérateurs logiques
T_LOGICAL_OR or opérateurs logiques
T_LOGICAL_XOR xor opérateurs logiques
T_MATCH match match (disponible à partir de PHP 8.0.0)
T_METHOD_C __METHOD__ constantes magiques
T_MINUS_EQUAL -= opérateurs d'assignation
T_MOD_EQUAL %= opérateurs d'assignation
T_MUL_EQUAL *= opérateurs d'assignation
T_NAMESPACE namespace espaces de noms
T_NAME_FULLY_QUALIFIED \App\Namespace espaces de noms (disponible à partir de PHP 8.0.0)
T_NAME_QUALIFIED App\Namespace namespaces (disponible à partir de PHP 8.0.0)
T_NAME_RELATIVE namespace\Namespace namespaces (disponible à partir de PHP 8.0.0)
T_NEW new classes et objets
T_NS_C __NAMESPACE__ espaces de noms
T_NS_SEPARATOR \ espaces de noms
T_NUM_STRING "$a[0]" index d'un tableau numérique se trouvant dans une chaîne de caractères
T_OBJECT_CAST (object) transtypage
T_OBJECT_OPERATOR -> classes et objets
T_NULLSAFE_OBJECT_OPERATOR ?-> classes et objets
T_OPEN_TAG <?php, <? or <% sortie du mode HTML
T_OPEN_TAG_WITH_ECHO <?= ou <%= sortie du mode HTML
T_OR_EQUAL |= opérateurs d'assignation
T_PAAMAYIM_NEKUDOTAYIM :: résolution de portée. Définie également en tant que T_DOUBLE_COLON.
T_PLUS_EQUAL += opérateurs d'assignation
T_POW ** les opérateurs arithmétiques
T_POW_EQUAL **= les opérateurs d'affectation
T_PRINT print print
T_PRIVATE private classes et objets
T_PRIVATE_SET privé(set) hooks de propriété (disponible à partir de PHP 8.4.0)
T_PROPERTY_C __PROPERTY__ constantes magiques
T_PROTECTED protected classes et objets
T_PROTECTED_SET protégé(set) hooks de propriété (disponible à partir de PHP 8.4.0)
T_PUBLIC public classes et objets
T_PUBLIC_SET public(set) hooks de propriété (disponible à partir de PHP 8.4.0)
T_READONLY readonly classes et objets (disponible à partir de PHP 8.1.0)
T_REQUIRE require require
T_REQUIRE_ONCE require_once require_once
T_RETURN return valeurs retournées
T_SL << opérateurs sur les bits
T_SL_EQUAL <<= opérateurs d'assignation
T_SPACESHIP <=> opérateurs de comparaisons
T_SR >> opérateurs sur les bits
T_SR_EQUAL >>= opérateurs d'assignation
T_START_HEREDOC <<< syntaxe heredoc
T_STATIC static scope de variable
T_STRING parent, self, etc. identifiants, e.g. mots-clés comme parent et self, noms de fonctions, classes et autres, correspondent. Voir aussi T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST (string) transtypage
T_STRING_VARNAME "${a variables flexibles à interpoler dans une chaîne
T_SWITCH switch switch
T_THROW throw Les exceptions
T_TRAIT trait Traits
T_TRAIT_C __TRAIT__ __TRAIT__
T_TRY try Les exceptions
T_UNSET unset() unset()
T_UNSET_CAST (unset) type-casting
T_USE use namespaces
T_VAR var classes et objets
T_VARIABLE $foo variables
T_WHILE while while, do...while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= opérateurs d'assignation
T_YIELD yield générateurs
T_YIELD_FROM yield from générateurs

Voir aussi token_name().

add a note

User Contributed Notes 3 notes

up
2
daniel_rhodes at yahoo dot co dot uk
8 months 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}
up
7
nathan at unfinitydesign dot com
16 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
-3
fgm at osinet dot fr
16 years ago
T_ENCAPSED_AND_WHITESPACED is returned when parsing strings with evaluated content, like "some $value" or this example from the Strings reference page:

<?php
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some
{$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

This last example is tokenized as:
T_ECHO
echo
T_WHITESPACE
%20 (a space character)
T_START_HEREDOC
<<
T_ENCAPSED_AND_WHITESPACE
My name is "
T_VARIABLE
$name
T_ENCAPSED_AND_WHITESPACE
". I am printing some
T_VARIABLE
$foo
T_OBJECT_OPERATOR
->
T_STRING
foo
T_ENCAPSED_AND_WHITESPACE
. Now, I am printing some
T_CURLY_OPEN
{
T_VARIABLE
$foo
T_OBJECT_OPERATOR
->
T_STRING
bar
(terminal)
[
T_LNUMBER
1
(terminal)
]
(terminal)
}
T_ENCAPSED_AND_WHITESPACE
. This should print a capital 'A': \x41
T_END_HEREDOC
EOT
(terminal)
;
To Top