PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Userland Naming Guide> <PHP 타입 비교 테이블
Last updated: Sun, 25 Nov 2007

view this page in

해석기 토큰 목록

PHP 언어의 많은 부분은 내부적으로 T_SR같은 타입으로 표현된다. PHP는 해석 에러에서 이와 같은 식별자를 출력한다. 다음과 같은 형태이다. "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

위는 T_SR이 무슨 의미인지 안다고 가정한다. 그 의미를 알지못하는 모든 사람을 위해 그런 식별자,PHP-문법,매뉴얼에 위치한 적절한 레퍼런스의 테이블을 보인다.

토큰
토큰 문법 레퍼런스
T_AND_EQUAL &= assignment operators
T_ARRAY array() array(), array syntax
T_ARRAY_CAST (array) type-casting
T_AS as foreach
T_BAD_CHARACTER   anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)
T_BOOLEAN_AND && logical operators
T_BOOLEAN_OR || logical operators
T_BOOL_CAST (bool) or (boolean) type-casting
T_BREAK break break
T_CASE case switch
T_CHARACTER    
T_CLASS class classes and objects
T_CLOSE_TAG ?> or %>  
T_COMMENT // or # comments
T_CONCAT_EQUAL .= assignment operators
T_CONST const  
T_CONSTANT_ENCAPSED_STRING "foo" or 'bar' string syntax
T_CONTINUE continue  
T_CURLY_OPEN    
T_DEC -- incrementing/decrementing operators
T_DECLARE declare declare
T_DEFAULT default switch
T_DIV_EQUAL /= assignment operators
T_DNUMBER 0.12, etc floating point numbers
T_DO do do..while
T_DOLLAR_OPEN_CURLY_BRACES ${ complex variable parsed syntax
T_DOUBLE_ARROW => array syntax
T_DOUBLE_CAST (real), (double) or (float) type-casting
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 or die exit(), die()
T_EXTENDS extends extends, classes and objects
T_FILE __FILE__ constants
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function or cfunction functions
T_GLOBAL global variable scope
T_IF if if
T_INC ++ incrementing/decrementing operators
T_INCLUDE include() include()
T_INCLUDE_ONCE include_once() include_once()
T_INLINE_HTML    
T_INT_CAST (int) or (integer) type-casting
T_ISSET isset() isset()
T_IS_EQUAL == comparison operators
T_IS_GREATER_OR_EQUAL >= comparison operators
T_IS_IDENTICAL === comparison operators
T_IS_NOT_EQUAL != or <> comparison operators
T_IS_NOT_IDENTICAL !== comparison operators
T_SMALLER_OR_EQUAL <= comparison operators
T_LINE __LINE__ constants
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc integers
T_LOGICAL_AND and logical operators
T_LOGICAL_OR or logical operators
T_LOGICAL_XOR xor logical operators
T_MINUS_EQUAL -= assignment operators
T_ML_COMMENT /* and */ comments
T_MOD_EQUAL %= assignment operators
T_MUL_EQUAL *= assignment operators
T_NEW new classes and objects
T_NUM_STRING    
T_OBJECT_CAST (object) type-casting
T_OBJECT_OPERATOR -> classes and objects
T_OLD_FUNCTION old_function old_function
T_OPEN_TAG <?php, <? or <% escaping from HTML
T_OPEN_TAG_WITH_ECHO <?= or <%= escaping from HTML
T_OR_EQUAL |= assignment operators
T_PAAMAYIM_NEKUDOTAYIM :: ::
T_PLUS_EQUAL += assignment operators
T_PRINT print() print()
T_REQUIRE require() require()
T_REQUIRE_ONCE require_once() require_once()
T_RETURN return returning values
T_SL << bitwise operators
T_SL_EQUAL <<= assignment operators
T_SR >> bitwise operators
T_SR_EQUAL >>= assignment operators
T_START_HEREDOC <<< heredoc syntax
T_STATIC static variable scope
T_STRING    
T_STRING_CAST (string) type-casting
T_STRING_VARNAME    
T_SWITCH switch switch
T_UNSET unset() unset()
T_UNSET_CAST (unset) (not documented; casts to NULL)
T_USE use (not implemented)
T_VAR var classes and objects
T_VARIABLE $foo variables
T_WHILE while while, do..while
T_WHITESPACE    
T_XOR_EQUAL ^= assignment operators
T_FUNC_C __FUNCTION__ constants, since PHP 4.3.0
T_CLASS_C __CLASS__ constants, since PHP 4.3.0


Userland Naming Guide> <PHP 타입 비교 테이블
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
해석기 토큰 목록
fgm at osinet dot fr
22-Sep-2008 01:08
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)
  ;
nathan at unfinitydesign dot com
22-Sep-2008 05:52
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.
o_O Tync
03-Aug-2008 08:21
Some tokens are not documented, so here they are:
all of them are located within non-constant ""-strings:

T_CHARACTER - \r\n\t... . They're presented AS IS and NOT replaced with actual characters

T_ENCAPSED_AND_WHITESPACE - whitespace

T_DOLLAR_OPEN_CURLY_BRACES - ${ (ONLY in non-constant ""-strings)

T_STRING - strings (example: "$a aa")

T_NUM_STRING - numbers (exaple: "$a 0")

still have no idea what T_ENCAPSED_AND_WHITESPACE means... :(

Userland Naming Guide> <PHP 타입 비교 테이블
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites