PHP 5.4.36 Released

Lista de Parser Tokens

Várias partes da linguagem PHP são representadas internamente por tipos, como T_SR. Tais identificadores são apresentados no PHP como erros de análise, como "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

Você deveria saber o que significa T_SR. Para todos que não sabem o que significa, aqui está uma tabela com todos os identificadores, em sintaxe PHP e suas devidas referências no manual.

Nota: Usa-se T_* para constantes

Todos os tokens listados abaixo também são definidos como constantes do PHP. O seu valor é gerado automaticamente baseado na estrutura subjacente de parse em PHP. Isto significa que o valor real de um token pode mudar entre duas versões do PHP. Por exemplo o T_FILE o valor da constante é de 365 no PHP 5.3, enquanto o mesmo valor refere-se a T_TRAIT em PHP 5.4 e o valor do T_FILE é 369. Isso significa que seu código nunca deve depender diretamente dos valores originais de T_* levando em consideração uma versão do PHP X.Y.Z, para fornecer alguma compatibilidade através de múltiplas versões do PHP. Em vez disso, o seu código deve utilizar valores personalizados (usando valores altos como 10000) e uma estratégia adequada que trabalhe com versões do PHP e valores de T_*.

Tokens
Token Sintaxe Referência
T_ABSTRACT abstract Abstração de Classes (a partir do PHP 5.0.0)
T_AND_EQUAL &= Operadores de Atribuição
T_ARRAY array() array(), array sintaxe
T_ARRAY_CAST (array) Conversão de Tipos
T_AS as foreach
T_BAD_CHARACTER   qualquer coisa abaixo de ASCII 32 exceto \t (0x09), \n (0x0a) e \r (0x0d)
T_BOOLEAN_AND && Operadores Lógicos
T_BOOLEAN_OR || Operadores Lógicos
T_BOOL_CAST (bool) or (boolean) Conversão de Tipos
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch Exceções (a partir do PHP 5.0.0)
T_CHARACTER   não é mais usado
T_CLASS class Classes e Objetos
T_CLASS_C __CLASS__ Constantes Mágicas (a partir do PHP 4.3.0)
T_CLONE clone Classes e Objetos (a partir do PHP 5.0.0)
T_CLOSE_TAG ?> ou %> Escapando o HTML
T_COMMENT // ou #, e /* */ Comentários
T_CONCAT_EQUAL .= Operadores de Atribuição
T_CONST const Constantes
T_CONSTANT_ENCAPSED_STRING "foo" ou 'bar' string sintaxe
T_CONTINUE continue continue
T_CURLY_OPEN {$ Sintaxe complexa (chaves)
T_DEC -- Operadores de Incremento/ Decremento
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ Constantes Mágicas (a partir do PHP 5.3.0)
T_DIV_EQUAL /= Operadores de Atribuição
T_DNUMBER 0.12, etc Números de ponto flutuante
T_DOC_COMMENT /** */ Comentários (a partir do PHP 5.0.0)
T_DO do do-while
T_DOLLAR_OPEN_CURLY_BRACES ${ Sintaxe complexa (chaves)
T_DOUBLE_ARROW => array sintaxe
T_DOUBLE_CAST (real), (double) ou (float) Conversão de Tipos
T_DOUBLE_COLON :: veja T_PAAMAYIM_NEKUDOTAYIM
T_ECHO echo echo
T_ELLIPSIS ... Argumentos da Função (a partir do PHP 5.6.0)
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" Interpretação de variáveis
T_ENDDECLARE enddeclare declare, sintaxe alternativa
T_ENDFOR endfor for, sintaxe alternativa
T_ENDFOREACH endforeach foreach, sintaxe alternativa
T_ENDIF endif if, sintaxe alternativa
T_ENDSWITCH endswitch switch, sintaxe alternativa
T_ENDWHILE endwhile while, sintaxe alternativa
T_END_HEREDOC   Heredoc
T_EVAL eval() eval()
T_EXIT exit ou die exit(), die()
T_EXTENDS extends extends, Classes e Objetos
T_FILE __FILE__ Constantes Mágicas
T_FINAL final Palavra-Chave 'final' (a partir do PHP 5.0.0)
T_FINALLY finally Exceções (a partir do PHP 5.5.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function ou cfunction Funções
T_FUNC_C __FUNCTION__ Constantes Mágicas (a partir do PHP 4.3.0)
T_GLOBAL global Escopo de variáveis
T_GOTO goto (a partir do PHP 5.3.0)
T_HALT_COMPILER __halt_compiler() __halt_compiler (a partir do PHP 5.1.0)
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   Escapando o HTML
T_INSTANCEOF instanceof Operadores de tipo
T_INSTEADOF insteadof Traits (a partir do PHP 5.4.0)
T_INT_CAST (int) ou (integer) Conversão de Tipos
T_INTERFACE interface Interfaces de Objetos
T_ISSET isset() isset()
T_IS_EQUAL == Operadores de Comparação
T_IS_GREATER_OR_EQUAL >= Operadores de Comparação
T_IS_IDENTICAL === Operadores de Comparação
T_IS_NOT_EQUAL != or <> Operadores de Comparação
T_IS_NOT_IDENTICAL !== Operadores de Comparação
T_IS_SMALLER_OR_EQUAL <= Operadores de Comparação
T_LINE __LINE__ Constantes Mágicas
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc Inteiros
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 Atribuição
T_MOD_EQUAL %= Operadores de Atribuição
T_MUL_EQUAL *= Operadores de Atribuição
T_NAMESPACE namespace namespaces (a partir do PHP 5.3.0)
T_NS_C __NAMESPACE__ namespaces (a partir do PHP 5.3.0)
T_NS_SEPARATOR \ namespaces (a partir do PHP 5.3.0)
T_NEW new Classes e Objetos
T_NUM_STRING "$a[0]" Interpretação de variáveis
T_OBJECT_CAST (object) Conversão de Tipos
T_OBJECT_OPERATOR -> Classes e Objetos
T_OPEN_TAG <?php, <? ou <% Escapando o HTML
T_OPEN_TAG_WITH_ECHO <?= or <%= Escapando o HTML
T_OR_EQUAL |= Operadores de Atribuição
T_PAAMAYIM_NEKUDOTAYIM :: ::. Também definido como T_DOUBLE_COLON.
T_PLUS_EQUAL += Operadores de Atribuição
T_POW ** Operadores Aritméticos (a partir do PHP 5.6.0)
T_POW_EQUAL **= Operadores de Atribuição (a partir do PHP 5.6.0)
T_PRINT print() print
T_PRIVATE private Classes e Objetos
T_PUBLIC public Classes e Objetos
T_PROTECTED protected Classes e Objetos
T_REQUIRE require() require
T_REQUIRE_ONCE require_once() require_once
T_RETURN return Retornando valores
T_SL << Operador Bit-a-bit
T_SL_EQUAL <<= Operadores de Atribuição
T_SR >> Operador Bit-a-bit
T_SR_EQUAL >>= Operadores de Atribuição
T_START_HEREDOC <<< Heredoc
T_STATIC static Escopo de variáveis
T_STRING parent, self, etc. identificadores, ex. palavra-chave tal como parent e self, nomes de função, nomes de classe e outros correspondem à esta categoria. Veja também T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST (string) Conversão de Tipos
T_STRING_VARNAME "${a Sintaxe complexa (chaves)
T_SWITCH switch switch
T_THROW throw Exceções
T_TRAIT trait Traits (a partir do PHP 5.4.0)
T_TRAIT_C __TRAIT__ __TRAIT__ (a partir do PHP 5.4.0)
T_TRY try Exceções
T_UNSET unset() unset()
T_UNSET_CAST (unset) Conversão de Tipos
T_USE use namespaces (a partir do PHP 5.3.0; reservado do PHP 4.0.0)
T_VAR var Classes e Objetos
T_VARIABLE $foo Variáveis
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= Operadores de Atribuição
T_YIELD yield generators (a partir do PHP 5.5.0)

Veja também token_name().

add a note add a note

User Contributed Notes 2 notes

up
3
nathan at unfinitydesign dot com
6 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
0
fgm at osinet dot fr
6 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