Přehled uzlů
Referenční přehled všech tříd uzlů: popis a sloty i s typem. Slot je pojmenovaný podle role, ne podle
textu (ifKeyword, openParen, body), párové oddělovače jsou vždy open* a
close*, seznamy jsou v množném čísle a ? značí slot, který může být prázdný.
Všechny třídy leží v PhpSyntax\Nodes. Slot typu Token drží jeden token,
NodeList<T> seznam uzlů bez oddělovačů a SeparatedNodeList<T> seznam s oddělovači
(čárkami, středníky) mezi položkami. Jak strom číst a měnit, říkají stránky Uzly a sloty a Úpravy
stromu.
Společné uzly
Kořen souboru, jména, seznamy, parametry, argumenty, atributy a části řídicích struktur.
NameNode
Name of a class, function, constant or namespace: one token of any kind, including keywords the grammar accepts as names
(static, array, readonly). Rozšiřuje Node.
token:Token
IdentifierNode
Identifier of a member, label, hook or alias: one token of any kind, including reserved words. Rozšiřuje
Node.
token:Token
ArgumentListNode
Parenthesized arguments of a call, instantiation, attribute or exit. Rozšiřuje Node.
openParen:Tokenitems:SeparatedNodeList<ArgumentNode|VariadicPlaceholderNode|ArgumentPlaceholderNode>closeParen:Token
ArgumentNode
Argument of a call: optionally named, by reference or unpacked. Rozšiřuje Node.
name:?IdentifierNodecolon:?TokenbyRef:?Tokenellipsis:?Tokenexpr:ExpressionNode
VariadicPlaceholderNode
The … placeholder of a first-class callable: f(…). Rozšiřuje Node.
ellipsis:Token
ArgumentPlaceholderNode
The ? placeholder of a partial function application, optionally named: f(?), f(name: ?). Rozšiřuje Node.
name:?IdentifierNodecolon:?Tokenquestion:Token
ParameterNode
Parameter of a function, method, closure or hook; with modifiers it promotes a property. Rozšiřuje Node.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodetype:?TypeNodebyRef:?Tokenellipsis:?Tokenvar:Expression\VariableNodeequals:?Tokendefault:?ExpressionNodeopenBrace:?Tokenhooks:?NodeList<Member\PropertyHookNode>closeBrace:?Token
AttributeGroupNode
One #[...] group of attributes. Rozšiřuje Node.
openAttribute:Tokenattributes:SeparatedNodeList<AttributeNode>closeBracket:Token
AttributeNode
Attribute with optional arguments. Rozšiřuje Node.
name:NameNodeargs:?ArgumentListNode
ModifiersNode
Modifier keywords in source order (public, static, readonly, abstract, final, var, public(set)…); may be empty. Rozšiřuje
Node.
tokens:list<Token>
NodeList
Sequence of nodes without separators: statements, members, attribute groups. Rozšiřuje Node.
items:list<Node>
SeparatedNodeList
Sequence of nodes with separator tokens between them and an optional trailing separator: parameters, arguments, array items,
imports. An item may be an empty node standing for nothing between two separators ([, $b] = $x). Rozšiřuje
Node.
items:list<Node>separators:list<Token>
FileNode
Root of the tree: the statements of a file and the end-of-file token carrying the trailing trivia. Rozšiřuje
Node.
stmts:NodeList<StatementNode>eof:Token
AnonymousClassNode
Anonymous class in a new expression: new class(…) extends A implements B { … }. Rozšiřuje Node.
Implementuje ClassLikeNode.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodeclassKeyword:Tokenargs:?ArgumentListNodeextendsKeyword:?Tokenextends:?NameNodeimplementsKeyword:?Tokenimplements:?SeparatedNodeList<NameNode>openBrace:Tokenmembers:NodeList<MemberNode>closeBrace:Token
ArrayItemNode
Item of an array literal or a destructuring list: value with optional key, by reference or unpacked. Rozšiřuje
Node.
key:?ExpressionNodedoubleArrow:?TokenbyRef:?Tokenellipsis:?Tokenvalue:ExpressionNode
EmptyArrayItemNode
Skipped item of a destructuring list ([, $b] = $x); has no tokens. Rozšiřuje Node.
MatchArmNode
Arm of a match expression: conditions or default, and the result. Rozšiřuje Node.
conds:?SeparatedNodeList<ExpressionNode>defaultKeyword:?TokendefaultComma:?TokendoubleArrow:Tokenbody:ExpressionNode
ClosureUsesNode
The use (…) clause of a closure. Rozšiřuje Node.
useKeyword:TokenopenParen:Tokenvars:SeparatedNodeList<ClosureUseNode>closeParen:Token
ClosureUseNode
Variable captured by a closure, optionally by reference. Rozšiřuje Node.
byRef:?Tokenvar:Expression\VariableNode
ElseIfNode
elseif branch, in either syntax. Rozšiřuje Node.
elseifKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>
ElseNode
else branch, in either syntax; else if is an else with an if statement as the body. Rozšiřuje Node.
elseKeyword:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>
CaseNode
case or default of a switch; the separator is a colon or a semicolon. Rozšiřuje Node.
caseKeyword:Tokencond:?ExpressionNodeseparator:Tokenstmts:NodeList<StatementNode>
CatchNode
catch clause with one or more types and an optional variable. Rozšiřuje Node.
catchKeyword:TokenopenParen:Tokentypes:SeparatedNodeList<NameNode>var:?Expression\VariableNodecloseParen:Tokenbody:Statement\BlockNode
FinallyNode
finally clause. Rozšiřuje Node.
finallyKeyword:Tokenbody:Statement\BlockNode
DeclareItemNode
Directive of a declare statement: strict_types=1. Rozšiřuje Node.
name:IdentifierNodeequals:Tokenvalue:ExpressionNode
StaticVarNode
Variable of a static statement with an optional initializer. Rozšiřuje Node.
var:Expression\VariableNodeequals:?Tokendefault:?ExpressionNode
UseItemNode
Imported name with an optional alias; the type (function, const) appears only inside a group use. Rozšiřuje
Node.
type:?Tokenname:NameNodeasKeyword:?Tokenalias:?IdentifierNode
ConstItemNode
Constant of a const statement or a class constant declaration. Rozšiřuje Node.
name:IdentifierNodeequals:Tokenvalue:ExpressionNode
Příkazy
Deklarace a příkazy: Statement\* jsou položky seznamu stmts souboru, bloku nebo jmenného
prostoru.
NamespaceNode
namespace declaration; after „namespace A;“ the following statements are nested in it. Rozšiřuje
StatementNode.
namespaceKeyword:Tokenname:?NameNodesemicolon:?TokenopenBrace:?Tokenstmts:NodeList<StatementNode>closeBrace:?Token
UseNode
use import of classes, functions or constants, written item by item or as a group under a prefix (use A\{B, C};), which fills
the slots the other form leaves empty. Rozšiřuje StatementNode.
useKeyword:Tokentype:?Tokenprefix:?NameNodenamespaceSeparator:?TokenopenBrace:?Tokenitems:SeparatedNodeList<UseItemNode>closeBrace:?Tokensemicolon:Token
ConstNode
const statement outside a class. Rozšiřuje StatementNode.
attributes:NodeList<AttributeGroupNode>constKeyword:Tokenitems:SeparatedNodeList<ConstItemNode>semicolon:Token
HaltCompilerNode
__halt_compiler(); the rest of the file is the data token. Rozšiřuje StatementNode.
haltKeyword:TokenopenParen:TokencloseParen:Tokensemicolon:Tokendata:?Token
InlineHtmlNode
Text outside PHP tags, including a BOM or a hashbang line. Rozšiřuje StatementNode.
html:Token
EmptyStatementNode
Bare semicolon, or a close tag after a terminated statement. Rozšiřuje StatementNode.
semicolon:Token
ExpressionStatementNode
Expression as a statement. Rozšiřuje StatementNode.
expr:ExpressionNodesemicolon:Token
BlockNode
Statements in braces. Rozšiřuje StatementNode.
openBrace:Tokenstmts:NodeList<StatementNode>closeBrace:Token
IfNode
if statement in either syntax; the body is a statement, the alternative syntax fills stmts. Rozšiřuje
StatementNode.
ifKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>elseifs:NodeList<ElseIfNode>else:?ElseNodeendKeyword:?Tokensemicolon:?Token
WhileNode
while loop in either syntax. Rozšiřuje StatementNode.
whileKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>endKeyword:?Tokensemicolon:?Token
DoWhileNode
do-while loop. Rozšiřuje StatementNode.
doKeyword:Tokenbody:StatementNodewhileKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:Tokensemicolon:Token
ForNode
for loop in either syntax. Rozšiřuje StatementNode.
forKeyword:TokenopenParen:Tokeninit:SeparatedNodeList<ExpressionNode>initSemicolon:Tokencond:SeparatedNodeList<ExpressionNode>condSemicolon:Tokenloop:SeparatedNodeList<ExpressionNode>closeParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>endKeyword:?Tokensemicolon:?Token
ForeachNode
foreach loop in either syntax; the value may be a variable, a list or an array pattern. Rozšiřuje
StatementNode.
foreachKeyword:TokenopenParen:Tokenexpr:ExpressionNodeasKeyword:TokenkeyVar:?ExpressionNodedoubleArrow:?TokenbyRef:?TokenvalueVar:ExpressionNodecloseParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>endKeyword:?Tokensemicolon:?Token
SwitchNode
switch statement in either syntax; a semicolon may precede the first case. Rozšiřuje StatementNode.
switchKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:TokenopenBrace:?Tokencolon:?TokenleadingSemicolon:?Tokencases:NodeList<CaseNode>closeBrace:?TokenendKeyword:?Tokensemicolon:?Token
BreakNode
break with an optional level. Rozšiřuje StatementNode.
breakKeyword:Tokenexpr:?ExpressionNodesemicolon:Token
ContinueNode
continue with an optional level. Rozšiřuje StatementNode.
continueKeyword:Tokenexpr:?ExpressionNodesemicolon:Token
ReturnNode
return with an optional value. Rozšiřuje StatementNode.
returnKeyword:Tokenexpr:?ExpressionNodesemicolon:Token
GlobalNode
global statement. Rozšiřuje StatementNode.
globalKeyword:Tokenvars:SeparatedNodeList<ExpressionNode>semicolon:Token
StaticNode
static variable declaration. Rozšiřuje StatementNode.
staticKeyword:Tokenvars:SeparatedNodeList<StaticVarNode>semicolon:Token
EchoNode
echo statement; the keyword may be the <?= open tag and the semicolon a close tag. Rozšiřuje
StatementNode.
echoKeyword:Tokenexprs:SeparatedNodeList<ExpressionNode>semicolon:Token
UnsetNode
unset statement. Rozšiřuje StatementNode.
unsetKeyword:TokenopenParen:Tokenvars:SeparatedNodeList<ExpressionNode>closeParen:Tokensemicolon:Token
DeclareNode
declare statement in its three forms: with a body, with a bare semicolon, or with the alternative syntax. Rozšiřuje
StatementNode.
declareKeyword:TokenopenParen:Tokenitems:SeparatedNodeList<DeclareItemNode>closeParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>endKeyword:?Tokensemicolon:?Token
TryNode
try statement with catches and an optional finally. Rozšiřuje StatementNode.
tryKeyword:Tokenbody:Statement\BlockNodecatches:NodeList<CatchNode>finally:?FinallyNode
GotoNode
goto statement. Rozšiřuje StatementNode.
gotoKeyword:Tokenlabel:IdentifierNodesemicolon:Token
LabelNode
Label for goto. Rozšiřuje StatementNode.
name:IdentifierNodecolon:Token
FunctionNode
Function declaration. Rozšiřuje StatementNode. Implementuje FunctionLikeNode.
attributes:NodeList<AttributeGroupNode>functionKeyword:TokenbyRef:?Tokenname:IdentifierNodeopenParen:Tokenparams:SeparatedNodeList<ParameterNode>closeParen:Tokencolon:?TokenreturnType:?TypeNodebody:Statement\BlockNode
ClassNode
Class declaration. Rozšiřuje StatementNode. Implementuje ClassLikeNode.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodeclassKeyword:Tokenname:IdentifierNodeextendsKeyword:?Tokenextends:?NameNodeimplementsKeyword:?Tokenimplements:?SeparatedNodeList<NameNode>openBrace:Tokenmembers:NodeList<MemberNode>closeBrace:Token
InterfaceNode
Interface declaration. Rozšiřuje StatementNode. Implementuje ClassLikeNode.
attributes:NodeList<AttributeGroupNode>interfaceKeyword:Tokenname:IdentifierNodeextendsKeyword:?Tokenextends:?SeparatedNodeList<NameNode>openBrace:Tokenmembers:NodeList<MemberNode>closeBrace:Token
TraitNode
Trait declaration. Rozšiřuje StatementNode. Implementuje ClassLikeNode.
attributes:NodeList<AttributeGroupNode>traitKeyword:Tokenname:IdentifierNodeopenBrace:Tokenmembers:NodeList<MemberNode>closeBrace:Token
EnumNode
Enum declaration, optionally backed by a scalar type. Rozšiřuje StatementNode. Implementuje
ClassLikeNode.
attributes:NodeList<AttributeGroupNode>enumKeyword:Tokenname:IdentifierNodecolon:?TokenscalarType:?TypeNodeimplementsKeyword:?Tokenimplements:?SeparatedNodeList<NameNode>openBrace:Tokenmembers:NodeList<MemberNode>closeBrace:Token
Výrazy
Vše, co má hodnotu: operátory, volání, přístupy, přiřazení, closures.
VariableNode
Variable: $a, $$a, ${expr}; inside a string also a bare name in ${name}. Rozšiřuje ExpressionNode.
dollar:?TokenopenBrace:?Tokenname:Token|ExpressionNodecloseBrace:?Token
ArrayDimFetchNode
Array or string offset access: $a[$i], $a[]. Rozšiřuje ExpressionNode.
var:ExpressionNodeopenBracket:Tokendim:?ExpressionNodecloseBracket:Token
PropertyFetchNode
Property access with → or ?->; the name may be an identifier, a variable or a braced expression. Rozšiřuje
ExpressionNode.
object:ExpressionNodeoperator:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Token
StaticPropertyFetchNode
Static property access: A::$b. Rozšiřuje ExpressionNode.
class:NameNode|ExpressionNodedoubleColon:Tokenname:Expression\VariableNode
ClassConstantFetchNode
Class constant access: A::B, A::class, A::{expr}. Rozšiřuje ExpressionNode.
class:NameNode|ExpressionNodedoubleColon:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Token
ConstantFetchNode
Constant access by name: FOO, \Foo\BAR, true. Rozšiřuje ExpressionNode.
name:NameNode
FunctionCallNode
Function call by name or on an expression. Rozšiřuje ExpressionNode.
name:NameNode|ExpressionNodeargs:ArgumentListNode
MethodCallNode
Method call with → or ?->. Rozšiřuje ExpressionNode.
object:ExpressionNodeoperator:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Tokenargs:ArgumentListNode
StaticCallNode
Static method call: A::b(), $a::b(), A::{expr}(). Rozšiřuje ExpressionNode.
class:NameNode|ExpressionNodedoubleColon:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Tokenargs:ArgumentListNode
NewNode
Instantiation of a named, dynamic or anonymous class. Rozšiřuje ExpressionNode. Implementuje
OperatorNode.
newKeyword:Tokenclass:NameNode|ExpressionNode|AnonymousClassNodeargs:?ArgumentListNode
ArrayNode
Array literal in either syntax: [...] or array(…); on the left of an assignment it destructures. Rozšiřuje
ExpressionNode.
arrayKeyword:?TokenopenDelimiter:Tokenitems:SeparatedNodeList<ArrayItemNode|EmptyArrayItemNode>closeDelimiter:Token
ListNode
Destructuring with list(…). Rozšiřuje ExpressionNode.
listKeyword:TokenopenParen:Tokenitems:SeparatedNodeList<ArrayItemNode|EmptyArrayItemNode>closeParen:Token
AssignNode
Assignment, plain or compound (+=, ??=); the operator token tells which. Rozšiřuje ExpressionNode. Implementuje
OperatorNode.
var:ExpressionNodeoperator:Tokenexpr:ExpressionNode
AssignRefNode
Assignment by reference: $a = &$b. Rozšiřuje ExpressionNode. Implementuje OperatorNode.
var:ExpressionNodeequals:Tokenampersand:Tokenexpr:ExpressionNode
BinaryNode
Binary operation; the operator token tells which (arithmetic, comparison, logical, bitwise, concatenation, coalesce, pipe).
Rozšiřuje ExpressionNode. Implementuje OperatorNode.
left:ExpressionNodeoperator:Tokenright:ExpressionNode
UnaryNode
Prefix operation: +, -, !, ~, @, ++, –. Rozšiřuje ExpressionNode. Implementuje OperatorNode.
operator:Tokenexpr:ExpressionNode
PostfixNode
Postfix increment or decrement. Rozšiřuje ExpressionNode. Implementuje OperatorNode.
expr:ExpressionNodeoperator:Token
CastNode
Type cast; the cast token keeps its spelling including inner whitespace: ( int ). Rozšiřuje ExpressionNode.
Implementuje OperatorNode.
cast:Tokenexpr:ExpressionNode
TernaryNode
Ternary conditional ($cond ? $if : $else) or the elvis form ($cond ?: $else). Rozšiřuje ExpressionNode.
Implementuje OperatorNode.
cond:ExpressionNodequestion:Tokenif:?ExpressionNodecolon:Tokenelse:ExpressionNode
InstanceofNode
instanceof check against a name or a dynamic class. Rozšiřuje ExpressionNode. Implementuje
OperatorNode.
expr:ExpressionNodeinstanceofKeyword:Tokenclass:NameNode|ExpressionNode
ParenthesizedNode
Expression in parentheses. Rozšiřuje ExpressionNode.
openParen:Tokenexpr:ExpressionNodecloseParen:Token
IssetNode
isset(…) with one or more variables. Rozšiřuje ExpressionNode.
issetKeyword:TokenopenParen:Tokenvars:SeparatedNodeList<ExpressionNode>closeParen:Token
EmptyNode
empty(…). Rozšiřuje ExpressionNode.
emptyKeyword:TokenopenParen:Tokenexpr:ExpressionNodecloseParen:Token
EvalNode
eval(…). Rozšiřuje ExpressionNode.
evalKeyword:TokenopenParen:Tokenexpr:ExpressionNodecloseParen:Token
IncludeNode
include, include_once, require or require_once; the keyword token tells which. Rozšiřuje ExpressionNode.
Implementuje OperatorNode.
includeKeyword:Tokenexpr:ExpressionNode
ExitNode
exit or die with optional arguments. Rozšiřuje ExpressionNode.
exitKeyword:Tokenargs:?ArgumentListNode
PrintNode
print expression. Rozšiřuje ExpressionNode. Implementuje OperatorNode.
printKeyword:Tokenexpr:ExpressionNode
YieldNode
yield, yield $value or yield $key ⇒ $value. Rozšiřuje ExpressionNode. Implementuje
OperatorNode.
yieldKeyword:Tokenkey:?ExpressionNodedoubleArrow:?Tokenvalue:?ExpressionNode
YieldFromNode
yield from expression. Rozšiřuje ExpressionNode. Implementuje OperatorNode.
yieldFromKeyword:Tokenexpr:ExpressionNode
ThrowNode
throw expression. Rozšiřuje ExpressionNode. Implementuje OperatorNode.
throwKeyword:Tokenexpr:ExpressionNode
CloneNode
clone expression; clone(…) with arguments is a function call. Rozšiřuje ExpressionNode. Implementuje
OperatorNode.
cloneKeyword:Tokenexpr:ExpressionNode
MatchNode
match expression. Rozšiřuje ExpressionNode.
matchKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:TokenopenBrace:Tokenarms:SeparatedNodeList<MatchArmNode>closeBrace:Token
ClosureNode
Anonymous function, optionally static, with captured variables. Rozšiřuje ExpressionNode. Implementuje
FunctionLikeNode.
attributes:NodeList<AttributeGroupNode>staticKeyword:?TokenfunctionKeyword:TokenbyRef:?TokenopenParen:Tokenparams:SeparatedNodeList<ParameterNode>closeParen:Tokenuses:?ClosureUsesNodecolon:?TokenreturnType:?TypeNodebody:Statement\BlockNode
ArrowFunctionNode
Arrow function fn(…) ⇒ expr, optionally static. Rozšiřuje ExpressionNode. Implementuje
FunctionLikeNode, OperatorNode.
attributes:NodeList<AttributeGroupNode>staticKeyword:?TokenfnKeyword:TokenbyRef:?TokenopenParen:Tokenparams:SeparatedNodeList<ParameterNode>closeParen:Tokencolon:?TokenreturnType:?TypeNodedoubleArrow:Tokenexpr:ExpressionNode
ShellExecNode
Command in backticks with interpolation. Rozšiřuje ExpressionNode.
openBacktick:Tokenparts:NodeList<Scalar\InterpolatedStringPartNode|Scalar\InterpolationNode|ExpressionNode>closeBacktick:Token
Členy tříd
Vlastnosti, konstanty, metody, případy výčtu, hooky a použití traitů.
PropertyNode
Property declaration; one or more properties, optionally with hooks. Rozšiřuje MemberNode.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodetype:?TypeNodeitems:SeparatedNodeList<Member\PropertyItemNode>semicolon:?TokenopenBrace:?Tokenhooks:?NodeList<Member\PropertyHookNode>closeBrace:?Token
PropertyItemNode
One property of a declaration with an optional default. Rozšiřuje Node.
name:Tokenequals:?Tokendefault:?ExpressionNode
PropertyHookNode
Property hook (get, set) with a block body, an arrow body or none. Rozšiřuje Node. Implementuje
FunctionLikeNode.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodebyRef:?Tokenname:IdentifierNodeopenParen:?Tokenparams:?SeparatedNodeList<ParameterNode>closeParen:?Tokenbody:?Statement\BlockNodedoubleArrow:?Tokenexpr:?ExpressionNodesemicolon:?Token
ClassConstNode
Class constant declaration, optionally typed. Rozšiřuje MemberNode.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodeconstKeyword:Tokentype:?TypeNodeitems:SeparatedNodeList<ConstItemNode>semicolon:Token
MethodNode
Method declaration; abstract and interface methods end with a semicolon instead of a body. Rozšiřuje MemberNode.
Implementuje FunctionLikeNode.
attributes:NodeList<AttributeGroupNode>modifiers:ModifiersNodefunctionKeyword:TokenbyRef:?Tokenname:IdentifierNodeopenParen:Tokenparams:SeparatedNodeList<ParameterNode>closeParen:Tokencolon:?TokenreturnType:?TypeNodebody:?Statement\BlockNodesemicolon:?Token
TraitUseNode
use of traits with optional adaptations in braces. Rozšiřuje MemberNode.
useKeyword:Tokentraits:SeparatedNodeList<NameNode>semicolon:?TokenopenBrace:?Tokenadaptations:?NodeList<Member\TraitPrecedenceNode|Member\TraitAliasNode>closeBrace:?Token
TraitPrecedenceNode
Trait adaptation A::m insteadof B;. Rozšiřuje Node.
trait:NameNodedoubleColon:Tokenmethod:IdentifierNodeinsteadofKeyword:Tokentraits:SeparatedNodeList<NameNode>semicolon:Token
TraitAliasNode
Trait adaptation m as [modifier] [alias];. Rozšiřuje Node.
trait:?NameNodedoubleColon:?Tokenmethod:IdentifierNodeasKeyword:Tokenmodifier:?Tokenalias:?IdentifierNodesemicolon:Token
EnumCaseNode
Enum case with an optional backing value. Rozšiřuje MemberNode.
attributes:NodeList<AttributeGroupNode>caseKeyword:Tokenname:IdentifierNodeequals:?Tokenvalue:?ExpressionNodesemicolon:Token
Skaláry
Čísla, řetězce a jejich interpolace, magické konstanty; text zůstává tak, jak byl zapsán.
IntegerNode
Integer literal in any base, kept as written. Rozšiřuje ExpressionNode.
token:Token
FloatNode
Literal PHP reads as a float, kept as written. That is not the same as float syntax: an integer literal beyond the integer
range is a float to PHP whatever its base (0xFFFFFFFFFFFFFFFF as much as 9223372036854775808), and the lexer hands it over as one,
so such a literal is a node of this class. Rozšiřuje ExpressionNode.
token:Token
StringNode
String literal without interpolation, quotes included. Rozšiřuje ExpressionNode.
token:Token
UnquotedStringNode
Name of an offset written without quotes inside an interpolated string ("$row[label]"), which PHP reads as a
string; having no delimiter, it stands for itself and holds no escape sequence. Rozšiřuje ExpressionNode.
token:Token
MagicConstantNode
Magic constant: __LINE__, __FILE__, __DIR__, __CLASS__, __TRAIT__, __METHOD__, __FUNCTION__, __PROPERTY__, __NAMESPACE__.
Rozšiřuje ExpressionNode.
token:Token
InterpolatedStringNode
Double-quoted string with interpolated variables or expressions. Rozšiřuje ExpressionNode.
openQuote:Tokenparts:NodeList<Scalar\InterpolatedStringPartNode|Scalar\InterpolationNode|ExpressionNode>closeQuote:Token
HeredocNode
Heredoc or nowdoc; the closing delimiter keeps its indentation, the parts keep theirs. Rozšiřuje
ExpressionNode.
openDelimiter:Tokenparts:NodeList<Scalar\InterpolatedStringPartNode|Scalar\InterpolationNode|ExpressionNode>closeDelimiter:Token
InterpolatedStringPartNode
Literal text between interpolations, whitespace included. What its escape sequences mean depends on the string it stands in, so
the string is what resolves them, with PhpSyntax\Escaping. Rozšiřuje Node.
token:Token
InterpolationNode
Braced interpolation inside a string: {$expr} or ${name}. Rozšiřuje Node.
openBrace:Tokenexpr:ExpressionNodecloseBrace:Token
Typy
Typové deklarace parametrů, vlastností a návratových hodnot.
NamedTypeNode
Type given by a name: builtin (int, static, array, callable) or a class. Rozšiřuje TypeNode.
name:NameNode
NullableTypeNode
Nullable type: ?T. Rozšiřuje TypeNode.
question:Tokentype:TypeNode
UnionTypeNode
Union type A|B; a member may be a parenthesized intersection (DNF). Rozšiřuje TypeNode.
types:SeparatedNodeList<TypeNode>
IntersectionTypeNode
Intersection type A&B, parenthesized inside a union. Rozšiřuje TypeNode.
openParen:?Tokentypes:SeparatedNodeList<TypeNode>closeParen:?Token