PHP.mk документација

Список на токени на парсер

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

tokens.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека tokens.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Список на токени на парсер

Референца за `tokens.php` со подобрена типографија и навигација.

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);
?>
Токени
Токен Синтакса Референца
T_ABSTRACT abstract Апстракција на класа
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & Декларации на типови (достапно од PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & Декларации на типови (достапно од PHP 8.1.0)
T_AND_EQUAL &= оператори за доделување
T_ARRAY array() array(), синтакса на низи
T_ARRAY_CAST (низа) type-casting
T_AS as foreach
T_ATTRIBUTE #[ attributes (достапно од PHP 8.0.0)
T_BAD_CHARACTER     сè под ASCII 32 освен \t (0x09), \n (0x0a) и \r (0x0d) (достапно од PHP 7.4.0)
T_BOOLEAN_AND && логички оператори
T_BOOLEAN_OR || логички оператори
T_BOOL_CAST (bool) или (boolean) type-casting
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch Исклучоци
T_CLASS class класи и објекти
T_CLASS_C __CLASS__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_CLONE clone класи и објекти
T_CLOSE_TAG (array) бегање од HTML
T_COALESCE ?? оператори за споредба
T_COALESCE_EQUAL ??= оператори за доделување (достапно од PHP 7.4.0)
T_COMMENT // или #, и /* */ comments
T_CONCAT_EQUAL .= оператори за доделување
T_CONST const константи во класа
T_CONSTANT_ENCAPSED_STRING "foo" или 'bar' синтакса на низи
T_CONTINUE continue continue
T_CURLY_OPEN {$ advanced интерполација на променливи низи
T_DEC -- оператори за зголемување/намалување
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_DIV_EQUAL /= оператори за доделување
T_DNUMBER 0.12, итн. бројки со точки
T_DO do do..while
T_DOC_COMMENT /** */ коментари во стил на PHPDoc
T_DOLLAR_OPEN_CURLY_BRACES ${ basic интерполација на променливи низи
T_DOUBLE_ARROW => синтакса на низи
T_DOUBLE_CAST (real), (double) или (float) type-casting
T_DOUBLE_COLON :: see T_PAAMAYIM_NEKUDOTAYIM below
T_ECHO echo echo
T_ELLIPSIS ... аргументи на функција
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" константен дел од низа со променливи
T_ENDDECLARE enddeclare declare, алтернативна синтакса
T_ENDFOR endfor for, алтернативна синтакса
T_ENDFOREACH endforeach foreach, алтернативна синтакса
T_ENDIF endif if, алтернативна синтакса
T_ENDSWITCH endswitch switch, алтернативна синтакса
T_ENDWHILE endwhile while, алтернативна синтакса
T_ENUM enum Енумерации (достапно од PHP 8.1.0)
T_END_HEREDOC     heredoc синтакса
T_EVAL eval() eval()
T_EXIT exit или die exit(), die()
T_EXTENDS extends extends, класи и објекти
T_FILE __FILE__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_FINAL final Клучниот збор final
T_FINALLY finally Исклучоци
T_FN fn стрелкасти функции (достапно од PHP 7.4.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function functions
T_FUNC_C __FUNCTION__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_GLOBAL global опсег на променливи
T_GOTO goto goto
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements Интерфејси на објекти
T_INC ++ оператори за зголемување/намалување
T_INCLUDE include include
T_INCLUDE_ONCE include_once include_once
T_INLINE_HTML     текст надвор од PHP
T_INSTANCEOF instanceof оператори за тип
T_INSTEADOF insteadof Карактеристики
T_INTERFACE interface Интерфејси на објекти
T_INT_CAST (int) или (integer) type-casting
T_ISSET isset() isset()
T_IS_EQUAL == оператори за споредба
T_IS_GREATER_OR_EQUAL >= оператори за споредба
T_IS_IDENTICAL === оператори за споредба
T_IS_NOT_EQUAL != или <> оператори за споредба
T_IS_NOT_IDENTICAL !== оператори за споредба
T_IS_SMALLER_OR_EQUAL <= оператори за споредба
T_LINE __LINE__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, итн. integers
T_LOGICAL_AND and логички оператори
T_LOGICAL_OR or логички оператори
T_LOGICAL_XOR xor логички оператори
T_MATCH match match (достапно од PHP 8.0.0)
T_METHOD_C __METHOD__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_MINUS_EQUAL -= оператори за доделување
T_MOD_EQUAL %= оператори за доделување
T_MUL_EQUAL *= оператори за доделување
T_NAMESPACE namespace namespaces
T_NAME_FULLY_QUALIFIED \App\Namespace namespaces (достапно од PHP 8.0.0)
T_NAME_QUALIFIED App\Namespace namespaces (достапно од PHP 8.0.0)
T_NAME_RELATIVE namespace\Namespace namespaces (достапно од PHP 8.0.0)
T_NEW new класи и објекти
T_NS_C __NAMESPACE__ namespaces
T_NS_SEPARATOR \ namespaces
T_NUM_STRING "$a[0]" нумерички индекс на низа во стринг
T_OBJECT_CAST ?> or %> type-casting
T_OBJECT_OPERATOR -> класи и објекти
T_NULLSAFE_OBJECT_OPERATOR ?-> класи и објекти
T_OPEN_TAG <?php, <? или <% бегање од HTML
T_OPEN_TAG_WITH_ECHO <?= или <%= бегање од HTML
T_OR_EQUAL |= оператори за доделување
T_PAAMAYIM_NEKUDOTAYIM :: резолуција на опсег. Исто така дефинирано како T_DOUBLE_COLON.
T_PLUS_EQUAL += оператори за доделување
T_POW ** аритметички оператори
T_POW_EQUAL **= оператори за доделување
T_PRINT print print
T_PRIVATE private класи и објекти
T_PRIVATE_SET (object) својства на куки (достапно од PHP 8.4.0)
T_PROPERTY_C __PROPERTY__ Пред PHP 8.0.0, константите дефинирани со помош на функцијата може да бидат неосетливи на големи и мали букви.
T_PROTECTED protected класи и објекти
T_PROTECTED_SET private(set) својства на куки (достапно од PHP 8.4.0)
T_PUBLIC public класи и објекти
T_PUBLIC_SET protected(set) својства на куки (достапно од PHP 8.4.0)
T_READONLY readonly класи и објекти (достапно од PHP 8.1.0)
T_REQUIRE require require
T_REQUIRE_ONCE require_once require_once
T_RETURN return враќање вредности
T_SL << бинарни оператори
T_SL_EQUAL <<= оператори за доделување
T_SPACESHIP <=> оператори за споредба
T_SR >> бинарни оператори
T_SR_EQUAL >>= оператори за доделување
T_START_HEREDOC <<< heredoc синтакса
T_STATIC static опсег на променливи
T_STRING parent, self, итн. идентификатори, на пр. клучни зборови како parent and self, имиња на функции, имиња на класи и повеќе се совпаѓаат. Погледнете исто така T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST public(set) type-casting
T_STRING_VARNAME "${a (низа) променливи променливи
T_SWITCH switch switch
T_THROW throw Исклучоци
T_TRAIT trait Карактеристики
T_TRAIT_C __TRAIT__ __TRAIT__
T_TRY try Исклучоци
T_UNSET unset() unset()
T_UNSET_CAST за интерполација во низа type-casting
T_USE use namespaces
T_VAR var класи и објекти
T_VARIABLE $foo variables
T_WHILE while while, do..while
T_WHITESPACE (непоставено)    
T_XOR_EQUAL ^= оператори за доделување
T_YIELD yield generators
T_YIELD_FROM \t \r\n generators

Види исто така token_name().

Белешки од корисници 2 забелешки

yield from
пред 17 години
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.
nathan at unfinitydesign dot com
пред 1 година
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}
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.