Liste der Parsertoken

Verschiedene Teile der Sprache PHP werden intern durch Typen wie T_SR repräsentiert. PHP gibt Bezeichner wie diese in Parserfehlermeldungen wie "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." aus.

You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

Token
Token Syntax Referenz
T_ABSTRACT abstract Klassenabstraktion (verfügbar ab PHP 5.0.0)
T_AND_EQUAL &= Zuweisungsoperatoren
T_ARRAY array() array(), array syntax
T_ARRAY_CAST (array) type-casting
T_AS as foreach
T_BAD_CHARACTER   Alle Zeichen unterhalb von ASCII 32 mit Ausnahme von \t (0x09), \n (0x0a) und \r (0x0d)
T_BOOLEAN_AND && Logische Operatoren
T_BOOLEAN_OR || Logische Operatoren
T_BOOL_CAST (bool) or (boolean) type-casting
T_BREAK break break
T_CASE case switch
T_CATCH catch Ausnahmebehandlung (verfügbar ab PHP 5.0.0)
T_CHARACTER    
T_CLASS class Klassen und Objekte
T_CLASS_C __CLASS__ Magische Konstanten (verfügbar ab PHP 4.3.0)
T_CLONE clone Klassen und Objekte (verfügbar ab PHP 5.0.0)
T_CLOSE_TAG ?> oder %>  
T_COMMENT // oder #, und /* */ in PHP 5 Kommentare
T_CONCAT_EQUAL .= Zuweisungsoperatoren
T_CONST const  
T_CONSTANT_ENCAPSED_STRING "foo" oder 'bar' Stringsyntax
T_CONTINUE continue  
T_CURLY_OPEN    
T_DEC -- Inkrement- bzw. Dekrementoperatoren
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ Magische Konstanten (verfügbar ab PHP 5.3.0)
T_DIV_EQUAL /= Zuweisungsoperatoren
T_DNUMBER 0.12, etc Fließkommawerte
T_DOC_COMMENT /** */ Kommentare im PHPDoc Stil (verfügbar ab PHP 5.0.0)
T_DO do do..while
T_DOLLAR_OPEN_CURLY_BRACES ${ complex variable parsed syntax
T_DOUBLE_ARROW => Arraysyntax
T_DOUBLE_CAST (real), (double) or (float) Typumwandlung
T_DOUBLE_COLON :: Siehe T_PAAMAYIM_NEKUDOTAYIM weiter unten
T_ECHO echo echo
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE    
T_ENDDECLARE enddeclare declare, Alternative Syntax
T_ENDFOR endfor for, Alternative Syntax
T_ENDFOREACH endforeach foreach, Alternative Syntax
T_ENDIF endif if, Alternative Syntax
T_ENDSWITCH endswitch switch, Alternative Syntax
T_ENDWHILE endwhile while, Alternative Syntax
T_END_HEREDOC   'heredoc'-Syntax
T_EVAL eval() eval()
T_EXIT exit oder die exit(), die()
T_EXTENDS extends extends, Klassen und Objekte
T_FILE __FILE__ Magische Konstanten
T_FINAL final Final-Schlüsselwort (verfügbar ab PHP 5.0.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function oder cfunction Funktionen
T_FUNC_C __FUNCTION__ Magische Konstanten (verfügbar ab PHP 4.3.0)
T_GLOBAL global Geltungsbereich von Variablen
T_GOTO goto Undokumentiert (verfügbar ab PHP 5.3.0)
T_HALT_COMPILER __halt_compiler() __halt_compiler (verfügbar ab PHP 5.1.0)
T_IF if if
T_IMPLEMENTS implements Interfaces (verfügbar ab PHP 5.0.0)
T_INC ++ Inkrement- bzw. Dekrementoperatoren
T_INCLUDE include() include
T_INCLUDE_ONCE include_once() include_once
T_INLINE_HTML    
T_INSTANCEOF instanceof type operators (verfügbar ab PHP 5.0.0)
T_INT_CAST (int) oder (integer) Typumwandlung
T_INTERFACE interface Interfaces (verfügbar ab PHP 5.0.0)
T_ISSET isset() isset()
T_IS_EQUAL == Vergleichsoperator
T_IS_GREATER_OR_EQUAL >= Vergleichsoperator
T_IS_IDENTICAL === Vergleichsoperator
T_IS_NOT_EQUAL != or <> Vergleichsoperator
T_IS_NOT_IDENTICAL !== Vergleichsoperator
T_IS_SMALLER_OR_EQUAL <= Vergleichsoperator
T_LINE __LINE__ Magische Konstanten
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc Integerwerte
T_LOGICAL_AND and Logische Operatoren
T_LOGICAL_OR or Logische Operatoren
T_LOGICAL_XOR xor Logische Operatoren
T_METHOD_C __METHOD__ Magische Konstanten (verfügbar ab PHP 5.0.0)
T_MINUS_EQUAL -= Zuweisungsoperatoren
T_ML_COMMENT /* and */ Kommentare (nur PHP 4)
T_MOD_EQUAL %= Zuweisungsoperatoren
T_MUL_EQUAL *= Zuweisungsoperatoren
T_NS_C __NAMESPACE__ namespaces. Auch definiert als T_NAMESPACE (verfügbar ab PHP 5.3.0)
T_NEW new Klassen und Objekte
T_NUM_STRING    
T_OBJECT_CAST (object) Typumwandlung
T_OBJECT_OPERATOR -> Klassen und Objekte
T_OLD_FUNCTION old_function  
T_OPEN_TAG <?php, <? or <% HTML-Bereich der Datei verlassen
T_OPEN_TAG_WITH_ECHO <?= or <%= HTML-Bereich der Datei verlassen
T_OR_EQUAL |= Zuweisungsoperatoren
T_PAAMAYIM_NEKUDOTAYIM :: ::. Auch definiert als T_DOUBLE_COLON.
T_PLUS_EQUAL += Zuweisungsoperatoren
T_PRINT print() print
T_PRIVATE private Klassen und Objekte (verfügbar ab PHP 5.0.0)
T_PUBLIC public Klassen und Objekte (verfügbar ab PHP 5.0.0)
T_PROTECTED protected Klassen und Objekte (verfügbar ab PHP 5.0.0)
T_REQUIRE require() require
T_REQUIRE_ONCE require_once() require_once
T_RETURN return Rückgabe von Werten
T_SL << Bitweise Operatoren
T_SL_EQUAL <<= Zuweisungsoperatoren
T_SR >> Bitweise Operatoren
T_SR_EQUAL >>= Zuweisungsoperatoren
T_START_HEREDOC <<< 'heredoc'-Syntax
T_STATIC static Geltungsbereich von Variablen
T_STRING    
T_STRING_CAST (string) Typumwandlung
T_STRING_VARNAME    
T_SWITCH switch switch
T_THROW throw Ausnahmebehandlung (verfügbar ab PHP 5.0.0)
T_TRY try Ausnahmebehandlung (verfügbar ab PHP 5.0.0)
T_UNSET unset() unset()
T_UNSET_CAST (unset) Typumwandlung (verfügbar ab PHP 5.0.0)
T_USE use Namensräume (verfügbar ab PHP 5.3.0)
T_VAR var Klassen und Objekte
T_VARIABLE $foo Variablen
T_WHILE while while, do..while
T_WHITESPACE    
T_XOR_EQUAL ^= Zuweisungsoperatoren

Siehe auch 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
2
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