PHP 5.5.15 is released

Liste des tokens de l'analyseur

De nombreuses parties du langage PHP sont représentées en interne par des tokens. Littéralement, ce sont des trucs, ou jetons. Ici, des briques de base, comme T_SR. PHP affiche des identifiants comme celui-ci dans les erreurs d'analyse, par exemple : unexpected T_SR, expecting ',' or ';' in script.php on line 10..

Vous êtes suppposé savoir ce que T_SR signifie. Pour ceux qui ne le savent pas, voici une liste de ces identifiants, la syntaxe PHP correspondante, et les références appropriées au manuel.

Note: Utilisation des constantes T_*

Tous les tokens listés ci-dessous sont également définis comme constantes PHP. Leurs valeurs sont automatiquement générées suivant l'infrastructure sous jacente de PHP. Ceci signifie que la valeur concrète d'un token peut changer entre deux versions de PHP. Par exemple, la constante T_FILE vaut 365 en PHP 5.3, alors que la même valeur se réfère maintenant à la constante T_TRAIT en PHP 5.4 et la valeur de la constante T_FILE est de 369. Ceci signifie que votre code ne doit jamais utiliser la valeur littérale des constantes T_* depuis une version PHP X.Y.Z et ce, afin d'assurer une meilleure portabilité entre plusieurs versions de PHP. À la place, votre code doit utiliser les valeurs (utilisation de très grand nombre comme 10000) ainsi qu'une stratégie appropriée qui fonctionnera à la fois avec les versions de PHP et les valeurs T_*.

Tokens
Token Syntaxe Référence
T_ABSTRACT abstract Abstraction de classes (disponible depuis PHP 5.0.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_BAD_CHARACTER   Tous les caractères en dessous de ASCII 32 excepté \t (0x09), \n (0x0a) et \r (0x0d)
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 (disponible depuis PHP 5.0.0)
T_CHARACTER   Plus utilisé actuellement
T_CLASS class classes et objets
T_CLASS_C __CLASS__ constantes magiques (disponible depuis PHP 4.3.0)
T_CLONE clone classes et objets. (disponible depuis PHP 5.0.0)
T_CLOSE_TAG ?> or %> échapper depuis le HTML
T_COMMENT // ou #, et /* */ en PHP 5 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'analyse de variable complexe
T_DEC -- opérateurs d'incrémention/décrémention
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ constantes magiques (disponible depuis PHP 5.3.0)
T_DIV_EQUAL /= opérateurs d'assignation
T_DNUMBER 0.12, etc. nombres à virgule flottante
T_DOC_COMMENT /** */ style de commentaire dans la PHPDoc (disponible depuis PHP 5.0.0)
T_DO do do...while
T_DOLLAR_OPEN_CURLY_BRACES ${ syntaxe de variable complexe analysée
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_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_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" (disponible depuis PHP 5.0.0)
T_FINALLY finally Les exceptions (disponible depuis PHP 5.5.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function or cfunction fonctions
T_FUNC_C __FUNCTION__ constantes magiques (disponible depuis PHP 4.3.0)
T_GLOBAL global scope de variable
T_GOTO goto (disponible depuis PHP 5.3.0)
T_HALT_COMPILER __halt_compiler() __halt_compiler (disponible depuis PHP 5.1.0)
T_IF if if
T_IMPLEMENTS implements Interfaces (disponible depuis PHP 5.0.0)
T_INC ++ opérateurs d'incrémention/décrémention
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 (disponible depuis PHP 5.0.0)
T_INSTEADOF insteadof Traits (disponible depuis PHP 5.4.0)
T_INT_CAST (int) ou (integer) transtypage
T_INTERFACE interface Interfaces (disponible depuis PHP 5.0.0)
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_METHOD_C __METHOD__ constantes magiques (disponible depuis PHP 5.0.0)
T_MINUS_EQUAL -= opérateurs d'assignation
T_ML_COMMENT /* et */ commentaires (PHP 4 uniquement)
T_MOD_EQUAL %= opérateurs d'assignation
T_MUL_EQUAL *= opérateurs d'assignation
T_NAMESPACE namespace namespaces (disponible PHP 5.3.0)
T_NS_C __NAMESPACE__ namespaces (disponible depuis PHP 5.3.0)
T_NS_SEPARATOR \ namespaces (disponible depuis PHP 5.3.0)
T_NEW new classes et objets
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_OLD_FUNCTION old_function (uniquement PHP 4)
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 :: ::. Définie également en tant que T_DOUBLE_COLON.
T_PLUS_EQUAL += opérateurs d'assignation
T_PRINT print() print
T_PRIVATE private classes et objets (disponible depuis PHP 5.0.0)
T_PUBLIC public classes et objets (disponible depuis PHP 5.0.0)
T_PROTECTED protected classes et objets (disponible depuis PHP 5.0.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_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 syntaxe d'analyse d'une variable complexe
T_SWITCH switch switch
T_THROW throw Les exceptions (disponible depuis PHP 5.0.0)
T_TRAIT trait Traits (disponible depuis PHP 5.4.0)
T_TRAIT_C __TRAIT__ __TRAIT__ (disponible depuis PHP 5.4.0)
T_TRY try Les exceptions (disponible depuis PHP 5.0.0)
T_UNSET unset() unset()
T_UNSET_CAST (unset) type-casting (disponible depuis PHP 5.0.0)
T_USE use namespaces (disponible depuis PHP 5.3.0 ; réservé depuis PHP 4.0.0)
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 (disponible depuis PHP 5.5.0)

Voir aussi token_name().

add a note add a note

User Contributed Notes 2 notes

up
2
fgm at osinet dot fr
5 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)
  ;
up
1
nathan at unfinitydesign dot com
5 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.
To Top