Lista semnelor interpretorului

Diverse părți ale limbajului PHP sunt reprezentate intern de tipuri precum T_SR. PHP afișează asemenea identificatori în erori de interpretare astfel: "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

Trebuie să cunoașteți ce reprezintă T_SR. Pentru cei ce nu cunosc, iată un tabel cu acești identificatori, sintaxa PHP și referințe către locurile corespunzătoare din manual.

Notă: Utilizarea constantelor T_*

Toate semnele afișate mai jos sunt de asemenea definite și ca constante PHP. Valorile lor este generată automat în baza infrastructurii din cadrul analizatorului PHP. Aceasta înseamnă că valoarea concretă a unui semn poate să se modifice între două versiuni PHP. Spre exemplu constanta T_FILE este 365 în PHP 5.3, în timp ce aceeași valoare acum se referă la T_TRAIT în PHP 5.4 și valoarea T_FILE este 369. Aceasta înseamnă că codul dumneavoastră nu trebuie să se bazeze direct pe valorile T_* originale ale PHP de versiunea X.Y.Z, pentru a oferi o compatibilitate între mai multe versiuni ale PHP. În loc, în codul dumneavoastră ar trebui să utilizați valori personalizate (de ex. numere mari cum ar fi 10000) și o strategie potrivită care va lucra cu ambele versiuni PHP și cu valorile T_*.

Semne
Semn Sintaxă Referință
T_ABSTRACT abstract Clase Abstracte
T_AND_EQUAL &= operatori de atribuire
T_ARRAY array() array(), sintaxa tabloutilor
T_ARRAY_CAST (array) type-casting
T_AS as foreach
T_BAD_CHARACTER   orice caracter cu codul ASCII mai mic decât 32 cu excepția \t (0x09), \n (0x0a) și \r (0x0d) (disponibilă începând cu PHP 7.4.0)
T_BOOLEAN_AND && operatori logici
T_BOOLEAN_OR || operatori logici
T_BOOL_CAST (bool) sau (boolean) type-casting
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch Exceptions
T_CLASS class clase și obiecte
T_CLASS_C __CLASS__ constante magice
T_CLONE clone clase și obiecte
T_CLOSE_TAG ?> sau %> evadarea din HTML
T_COALESCE ?? operatori de comparare
T_COALESCE_EQUAL ??= operatori de atribuire (disponibilă începând cu PHP 7.4.0)
T_COMMENT // sau #, și /* */ comentarii
T_CONCAT_EQUAL .= operatori de atribuire
T_CONST const constante ale claselor
T_CONSTANT_ENCAPSED_STRING "foo" sau 'bar' sintaxa string-urilor
T_CONTINUE continue continue
T_CURLY_OPEN {$ sintaxa interpretată complexă a variabilei
T_DEC -- operatori de incrementare / decrementare
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ constante magice
T_DIV_EQUAL /= operatori de atribuire
T_DNUMBER 0.12, etc. numere cu virgulă flotantă
T_DO do do..while
T_DOC_COMMENT /** */ comentarii în stil PHPDoc
T_DOLLAR_OPEN_CURLY_BRACES ${ sintaxa variabilelor interpretate complex
T_DOUBLE_ARROW => sintaxa tablourilor
T_DOUBLE_CAST (real), (double) sau (float) type-casting
T_DOUBLE_COLON :: vezi T_PAAMAYIM_NEKUDOTAYIM mai jos
T_ECHO echo echo
T_ELLIPSIS ... argumentele funcțiilor
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" partea constantă a șirurilor cu variabile
T_ENDDECLARE enddeclare declare, sintaxă alternativă
T_ENDFOR endfor for, sintaxă alternativă
T_ENDFOREACH endforeach foreach, sintaxă alternativă
T_ENDIF endif if, sintaxă alternativă
T_ENDSWITCH endswitch switch, sintaxă alternativă
T_ENDWHILE endwhile while, sintaxă alternativă
T_END_HEREDOC   sintaxă heredoc
T_EVAL eval() eval()
T_EXIT exit sau die exit(), die()
T_EXTENDS extends extends, clase și obiecte
T_FILE __FILE__ constante magice
T_FINAL final Cuvântul cheie Final
T_FINALLY finally Exceptions
T_FN fn funcții arrow (disponibilă începând cu PHP 7.4.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function funcții
T_FUNC_C __FUNCTION__ constante magice
T_GLOBAL global circumstanța variabilei
T_GOTO goto goto
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements Object Interfaces
T_INC ++ operatori de incrementare / decrementare
T_INCLUDE include() include
T_INCLUDE_ONCE include_once() include_once
T_INLINE_HTML   text în afara PHP
T_INSTANCEOF instanceof operatori ai tipurilor
T_INSTEADOF insteadof Traits
T_INTERFACE interface Object Interfaces
T_INT_CAST (int) sau (integer) type-casting
T_ISSET isset() isset()
T_IS_EQUAL == operatori de comparare
T_IS_GREATER_OR_EQUAL >= operatori de comparare
T_IS_IDENTICAL === operatori de comparare
T_IS_NOT_EQUAL != sau <> operatori de comparare
T_IS_NOT_IDENTICAL !== operatori de comparare
T_IS_SMALLER_OR_EQUAL <= operatori de comparare
T_LINE __LINE__ constante magice
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc. întregi
T_LOGICAL_AND and operatori logici
T_LOGICAL_OR or operatori logici
T_LOGICAL_XOR xor operatori logici
T_METHOD_C __METHOD__ constante magice
T_MINUS_EQUAL -= operatori de atribuire
T_MOD_EQUAL %= operatori de atribuire
T_MUL_EQUAL *= operatori de atribuire
T_NAMESPACE namespace spațiile de nume
T_NEW new clase și obiecte
T_NS_C __NAMESPACE__ spațiile de nume
T_NS_SEPARATOR \ spațiile de nume
T_NUM_STRING "$a[0]" indice numeric al tabloului în interiorul unui string
T_OBJECT_CAST (object) type-casting
T_OBJECT_OPERATOR -> clase și obiecte
T_OPEN_TAG <?php, <? sau <% evadarea din HTML
T_OPEN_TAG_WITH_ECHO <?= sau <%= evadarea din HTML
T_OR_EQUAL |= operatori de atribuire
T_PAAMAYIM_NEKUDOTAYIM :: ::. De asemenea definit ca T_DOUBLE_COLON.
T_PLUS_EQUAL += operatori de atribuire
T_POW ** operatori aritmetici
T_POW_EQUAL **= operatori de atribuire
T_PRINT print() print
T_PRIVATE private clase și obiecte
T_PROTECTED protected clase și obiecte
T_PUBLIC public clase și obiecte
T_REQUIRE require() require
T_REQUIRE_ONCE require_once() require_once
T_RETURN return întoarcerea valorilor
T_SL << operatori pe biți
T_SL_EQUAL <<= operatori de atribuire
T_SPACESHIP <=> operatori de comparație
T_SR >> operatori pe biți
T_SR_EQUAL >>= operatori de atribuire
T_START_HEREDOC <<< sintaxa heredoc
T_STATIC static circumstanța variabilei
T_STRING parent, self, etc. identificatori, de ex. cuvinte-cheie ca parent și self, denumiri de funcții, denumiri de clase și altele se potrivesc. A se vedea și T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST (string) type-casting
T_STRING_VARNAME "${a sintaxa complexă de interpretare a variabilelor
T_SWITCH switch switch
T_THROW throw Exceptions
T_TRAIT trait Traits
T_TRAIT_C __TRAIT__ __TRAIT__
T_TRY try Exceptions
T_UNSET unset() unset()
T_UNSET_CAST (unset) type-casting
T_USE use spații de nume
T_VAR var clase și obiecte
T_VARIABLE $foo variabile
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= operatori de atribuire
T_YIELD yield generators
T_YIELD_FROM yield from generators

A se vedea și token_name().

add a note add a note

User Contributed Notes 2 notes

up
1
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
-2
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