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.Список на токени на парсер
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Список на токени на парсер
Референца за `tokens.php` со подобрена типографија и навигација.
Список на токени на парсер
Различни делови од PHP јазикот се претставени внатрешно со токени. Парче код што содржи неважечка секвенца од токени може да доведе до грешки како
Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10."
каде што токенот == се претставува внатрешно со T_IS_EQUAL.
Следната табела ги наведува сите токени. Тие се достапни и како PHP константи.
Забелешка: Употреба на T_* константи
Вредностите на T_* константите се генерираат автоматски врз основа на внатрешната инфраструктура на парсерот на PHP. Ова значи дека конкретната вредност на токенот може да се промени помеѓу две верзии на PHP. Ова значи дека вашиот код никогаш не треба директно да се потпира на оригиналните T_* вредности земени од PHP верзија X.Y.Z, за да обезбеди компатибилност помеѓу повеќе верзии на PHP.
За да ги користите T_* константите помеѓу повеќе верзии на PHP, недефинираните константи може да бидат дефинирани од корисникот (со користење на големи броеви како
10000) со соодветна стратегија што ќе работи и со двете верзии на PHP и T_* вредностите.<?php
// Prior to PHP 7.4.0, T_FN is not defined.
defined('T_FN') || define('T_FN', 10001);
?>
Види исто така token_name().
Белешки од корисници 2 забелешки
In the above table of Tokens, it's worth noting that the bracketed text of "available as of PHP x.y.z" can mean one of two things:
[] This *parser token* is available as of PHP x.y.z
{eg. T_BAD_CHARACTER, T_NAME_QUALIFIED}
[] This *language feature* is available as of PHP x.y.z
{eg. T_ATTRIBUTE, T_COALESCE_EQUAL}