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)
;
Çözümleyici Dizgeciklerinin Listesi
PHP dilinin çeşitli parçaları dahili olarak T_SR benzeri türlerle ifade edilir. PHP, çözümleme hatalarında bu gibi betimleyicileri şöyle çıktılar: "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." (Çözümleme hatası: beklenmedik T_SR, script.php'nin 10. satırında ',' veya ';' umuluyor)
T_SR'nin anlamını bildiğiniz varsayılır. Bilmeyenler için bu betimleyiciler PHP söz dizimi ve kılavuzdaki açıklamalarına bağlarla burada listelenmişlerdir.
| Dizgecik | Söz dizimi | Gönderim |
|---|---|---|
| T_ABSTRACT | abstract | Sınıf Soyutlama (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_AND_EQUAL | &= | atama işleçleri |
| T_ARRAY | array() | array(), dizi sözdizimi |
| T_ARRAY_CAST | (array) | tür çarpıtma |
| T_AS | as | foreach |
| T_BAD_CHARACTER | \t (0x09), \n (0x0a) ve \r (0x0d) hariç ASCII 32'den küçük karakterler | |
| T_BOOLEAN_AND | && | mantıksal işleçler |
| T_BOOLEAN_OR | || | mantıksal işleçler |
| T_BOOL_CAST | (bool) or (boolean) | tür çarpıtma |
| T_BREAK | break | break |
| T_CASE | case | switch |
| T_CATCH | catch | İstisnalar (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_CHARACTER | ||
| T_CLASS | class | sınıflar ve nesneler |
| T_CLASS_C | __CLASS__ | sihirli sabitler (PHP 4.3.0 ve sonrasında mevcuttur). |
| T_CLONE | clone | sınıflar ve nesneler (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_CLOSE_TAG | ?> veya %> | |
| T_COMMENT | // veya # ve PHP5'te /* */ | açıklamalar |
| T_CONCAT_EQUAL | .= | atama işleçleri |
| T_CONST | const | |
| T_CONSTANT_ENCAPSED_STRING | "foo" veya 'bar' | dizge söz dizimi |
| T_CONTINUE | continue | |
| T_CURLY_OPEN | ||
| T_DEC | -- | Arttırım ve Eksiltim İşleçleri |
| T_DECLARE | declare | declare |
| T_DEFAULT | default | switch |
| T_DIR | __DIR__ | sihirli sabitler (PHP 5.3.0 ve sonrasında mevcuttur). |
| T_DIV_EQUAL | /= | atama işleçleri |
| T_DNUMBER | 0.12, etc | gerçek sayılar |
| T_DOC_COMMENT | /** */ | PHPDoc tarzı açıklmalar (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_DO | do | do..while |
| T_DOLLAR_OPEN_CURLY_BRACES | ${ | Karmaşık (kaşlı ayraçlı) sözdizimi |
| T_DOUBLE_ARROW | => | dizi söz dizimi |
| T_DOUBLE_CAST | (real), (double) veya (float) | tür çarpıtma |
| T_DOUBLE_COLON | :: | Bakınız: T_PAAMAYIM_NEKUDOTAYIM |
| T_ECHO | echo | echo() |
| T_ELSE | else | else |
| T_ELSEIF | elseif | elseif |
| T_EMPTY | empty | empty() |
| T_ENCAPSED_AND_WHITESPACE | ||
| T_ENDDECLARE | enddeclare | declare, denetim yapıları için diğer sözdizimi |
| T_ENDFOR | endfor | for, denetim yapıları için diğer sözdizimi |
| T_ENDFOREACH | endforeach | foreach, denetim yapıları için diğer sözdizimi |
| T_ENDIF | endif | if, denetim yapıları için diğer sözdizimi |
| T_ENDSWITCH | endswitch | switch, denetim yapıları için diğer sözdizimi |
| T_ENDWHILE | endwhile | while, denetim yapıları için diğer sözdizimi |
| T_END_HEREDOC | yorumlu metinler | |
| T_EVAL | eval() | eval() |
| T_EXIT | exit or die | exit(), die() |
| T_EXTENDS | extends | extends, sınıflar ve nesneler |
| T_FILE | __FILE__ | sihirli sabitler |
| T_FINAL | final | final Anahtar Sözcüğü (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_FOR | for | for |
| T_FOREACH | foreach | foreach |
| T_FUNCTION | function or cfunction | işlevler |
| T_FUNC_C | __FUNCTION__ | sihirli sabitler (PHP 4.3.0 ve sonrasında mevcuttur). |
| T_GLOBAL | global | değişken etki alanı |
| T_GOTO | goto | belgelenmedi (PHP 5.3.0 ve sonrasında mevcuttur). |
| T_HALT_COMPILER | __halt_compiler() | __halt_compiler (PHP 5.1.0 ve sonrasında mevcuttur). |
| T_IF | if | if |
| T_IMPLEMENTS | implements | Nesne Arayüzleri (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_INC | ++ | arttırım ve eksiltim işleçleri |
| T_INCLUDE | include() | include() |
| T_INCLUDE_ONCE | include_once() | include_once() |
| T_INLINE_HTML | ||
| T_INSTANCEOF | instanceof | tür işleçleri (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_INT_CAST | (int) or (integer) | tür çarpıtma |
| T_INTERFACE | interface | Nesne Arayüzleri (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_ISSET | isset() | isset() |
| T_IS_EQUAL | == | karşılaştırma işleçleri |
| T_IS_GREATER_OR_EQUAL | >= | karşılaştırma işleçleri |
| T_IS_IDENTICAL | === | karşılaştırma işleçleri |
| T_IS_NOT_EQUAL | != or <> | karşılaştırma işleçleri |
| T_IS_NOT_IDENTICAL | !== | karşılaştırma işleçleri |
| T_IS_SMALLER_OR_EQUAL | <= | karşılaştırma işleçleri |
| T_LINE | __LINE__ | sihirli sabitler |
| T_LIST | list() | list() |
| T_LNUMBER | 123, 012, 0x1ac, vs | tamsayılar |
| T_LOGICAL_AND | and | mantıksal işleçler |
| T_LOGICAL_OR | or | mantıksal işleçler |
| T_LOGICAL_XOR | xor | mantıksal işleçler |
| T_METHOD_C | __METHOD__ | sihirli sabitler (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_MINUS_EQUAL | -= | atama işleçleri |
| T_ML_COMMENT | /* ve */ | açıklamalar (sadece PHP 4) |
| T_MOD_EQUAL | %= | atama işleçleri |
| T_MUL_EQUAL | *= | atama işleçleri |
| T_NS_C | __NAMESPACE__ | isim alanları. Ayrıca, T_NAMESPACE olarak tanımlıdır (PHP 5.3.0 ve sonrasında mevcuttur). |
| T_NEW | new | sınıflar ve nesneler |
| T_NUM_STRING | ||
| T_OBJECT_CAST | (object) | tür çarpıtma |
| T_OBJECT_OPERATOR | -> | sınıflar ve nesneler |
| T_OLD_FUNCTION | old_function | |
| T_OPEN_TAG | <?php, <? veya <% | HTML'den Kaçmak |
| T_OPEN_TAG_WITH_ECHO | <?= veya <%= | HTML'den Kaçmak |
| T_OR_EQUAL | |= | atama işleçleri |
| T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Ayrıca, T_DOUBLE_COLON olarak tanımlıdır. |
| T_PLUS_EQUAL | += | atama işleçleri |
| T_PRINT | print() | print() |
| T_PRIVATE | private | sınıflar ve nesneler (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_PUBLIC | public | sınıflar ve nesneler (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_PROTECTED | protected | sınıflar ve nesneler (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_REQUIRE | require() | require() |
| T_REQUIRE_ONCE | require_once() | require_once() |
| T_RETURN | return | dönüş değerleri |
| T_SL | << | bitsel işleçler |
| T_SL_EQUAL | <<= | atama işleçleri |
| T_SR | >> | bitsel işleçler |
| T_SR_EQUAL | >>= | atama işleçleri |
| T_START_HEREDOC | <<< | yorumlu metinler |
| T_STATIC | static | değişken etki alanı |
| T_STRING | ||
| T_STRING_CAST | (string) | tür çarpıtma |
| T_STRING_VARNAME | ||
| T_SWITCH | switch | switch |
| T_THROW | throw | İstisnalar (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_TRY | try | İstisnalar (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_UNSET | unset() | unset() |
| T_UNSET_CAST | (unset) | tür çarpıtma (PHP 5.0.0 ve sonrasında mevcuttur). |
| T_USE | use | isim alanları (PHP 5.3.0 ve sonrasında mevcuttur). |
| T_VAR | var | sınıflar ve nesneler |
| T_VARIABLE | $foo | değişkenler |
| T_WHILE | while | while, do..while |
| T_WHITESPACE | ||
| T_XOR_EQUAL | ^= | atama işleçleri |
Ayrıca bakınız: token_name().
Çözümleyici Dizgeciklerinin Listesi
fgm at osinet dot fr
22-Sep-2008 11:08
22-Sep-2008 11:08
nathan at unfinitydesign dot com
22-Sep-2008 03:52
22-Sep-2008 03: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
04-Aug-2008 06:21
04-Aug-2008 06: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... :(
