Uzly stromu
Referenční přehled všech tříd uzlů: popis a sloty s typem. Slot je pojmenovaný rolí, ne textem
(ifKeyword, openParen, body), párové oddělovače jsou vždy open* a
close*, seznamy jsou v množném čísle; ? 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čů, SeparatedNodeList<T> seznam s oddělovači
(čárky, středníky) mezi položkami. Jak strom číst a měnit, říkají stránky Strom a Úpravy.
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. Implementuje Stringable.
token:Token
IdentifierNode
Identifier of a member, label, hook or alias: one token of any kind, including reserved words. Rozšiřuje Node.
Implementuje Stringable.
token:Token
ArgumentListNode
Parenthesized arguments of a call, instantiation, attribute or exit. Rozšiřuje Node. Implementuje
Stringable.
openParen:Tokenargs:SeparatedNodeList<ArgumentNode|VariadicPlaceholderNode|ArgumentPlaceholderNode>closeParen:Token
ArgumentNode
Argument of a call: optionally named, by reference or unpacked. Rozšiřuje Node. Implementuje
Stringable.
name:?IdentifierNodecolon:?TokenbyRef:?Tokenellipsis:?Tokenexpr:ExpressionNode
VariadicPlaceholderNode
The … placeholder of a first-class callable: f(…). Rozšiřuje Node. Implementuje Stringable.
ellipsis:Token
ArgumentPlaceholderNode
The ? placeholder of a partial function application, optionally named: f(?), f(name: ?). Rozšiřuje Node.
Implementuje Stringable.
name:?IdentifierNodecolon:?Tokenquestion:Token
ParameterNode
Parameter of a function, method, closure or hook; with modifiers it promotes a property. Rozšiřuje Node.
Implementuje Stringable.
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. Implementuje Stringable.
openAttribute:Tokenattributes:SeparatedNodeList<AttributeNode>closeBracket:Token
AttributeNode
Attribute with optional arguments. Rozšiřuje Node. Implementuje Stringable.
name:NameNodeargs:?ArgumentListNode
ModifiersNode
Modifier keywords in source order (public, static, readonly, abstract, final, var, public(set)…); may be empty. Rozšiřuje
Node. Implementuje Stringable.
tokens:list<Token>
NodeList
Sequence of nodes without separators: statements, members, attribute groups. Rozšiřuje Node. Implementuje
Stringable, Countable.
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. Implementuje Stringable, Countable.
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. Implementuje Stringable.
stmts:NodeList<StatementNode>eof:Token
AnonymousClassNode
Anonymous class in a new expression: new class(…) extends A implements B { … }. Rozšiřuje Node.
Implementuje Stringable, 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. Implementuje Stringable.
key:?ExpressionNodedoubleArrow:?TokenbyRef:?Tokenellipsis:?Tokenvalue:ExpressionNode
EmptyArrayItemNode
Skipped item of a destructuring list ([, $b] = $x); has no tokens. Rozšiřuje Node. Implementuje
Stringable.
MatchArmNode
Arm of a match expression: conditions or default, and the result. Rozšiřuje Node. Implementuje
Stringable.
conds:?SeparatedNodeList<ExpressionNode>defaultKeyword:?TokendefaultComma:?TokendoubleArrow:Tokenbody:ExpressionNode
ClosureUsesNode
The use (…) clause of a closure. Rozšiřuje Node. Implementuje Stringable.
useKeyword:TokenopenParen:Tokenvars:SeparatedNodeList<ClosureUseNode>closeParen:Token
ClosureUseNode
Variable captured by a closure, optionally by reference. Rozšiřuje Node. Implementuje
Stringable.
byRef:?Tokenvar:Expression\VariableNode
ElseIfNode
elseif branch, in either syntax. Rozšiřuje Node. Implementuje Stringable.
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. Implementuje
Stringable.
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. Implementuje
Stringable.
caseKeyword:Tokencond:?ExpressionNodeseparator:Tokenstmts:NodeList<StatementNode>
CatchNode
catch clause with one or more types and an optional variable. Rozšiřuje Node. Implementuje
Stringable.
catchKeyword:TokenopenParen:Tokentypes:SeparatedNodeList<NameNode>var:?Expression\VariableNodecloseParen:Tokenbody:Statement\BlockNode
FinallyNode
finally clause. Rozšiřuje Node. Implementuje Stringable.
finallyKeyword:Tokenbody:Statement\BlockNode
DeclareItemNode
Directive of a declare statement: strict_types=1. Rozšiřuje Node. Implementuje Stringable.
name:IdentifierNodeequals:Tokenvalue:ExpressionNode
StaticVarNode
Variable of a static statement with an optional initializer. Rozšiřuje Node. Implementuje
Stringable.
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. Implementuje Stringable.
type:?Tokenname:NameNodeasKeyword:?Tokenalias:?IdentifierNode
ConstItemNode
Constant of a const statement or a class constant declaration. Rozšiřuje Node. Implementuje
Stringable.
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. Implementuje Stringable.
namespaceKeyword:Tokenname:?NameNodesemicolon:?TokenopenBrace:?Tokenstmts:NodeList<StatementNode>closeBrace:?Token
UseNode
use import of classes, functions or constants. Rozšiřuje StatementNode. Implementuje
Stringable.
useKeyword:Tokentype:?Tokenitems:SeparatedNodeList<UseItemNode>semicolon:Token
GroupUseNode
Group use import: use A\{B, C};. Rozšiřuje StatementNode. Implementuje Stringable.
useKeyword:Tokentype:?Tokenprefix:NameNodenamespaceSeparator:TokenopenBrace:Tokenitems:SeparatedNodeList<UseItemNode>closeBrace:Tokensemicolon:Token
ConstNode
const statement outside a class. Rozšiřuje StatementNode. Implementuje Stringable.
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. Implementuje
Stringable.
haltKeyword:TokenopenParen:TokencloseParen:Tokensemicolon:Tokendata:?Token
InlineHtmlNode
Text outside PHP tags, including a BOM or a hashbang line. Rozšiřuje StatementNode. Implementuje
Stringable.
html:Token
EmptyStatementNode
Bare semicolon, or a close tag after a terminated statement. Rozšiřuje StatementNode. Implementuje
Stringable.
semicolon:Token
ExpressionStatementNode
Expression as a statement. Rozšiřuje StatementNode. Implementuje Stringable.
expr:ExpressionNodesemicolon:Token
BlockNode
Statements in braces. Rozšiřuje StatementNode. Implementuje Stringable.
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. Implementuje Stringable.
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. Implementuje Stringable.
whileKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:Tokenbody:?StatementNodecolon:?Tokenstmts:?NodeList<StatementNode>endKeyword:?Tokensemicolon:?Token
DoWhileNode
do-while loop. Rozšiřuje StatementNode. Implementuje Stringable.
doKeyword:Tokenbody:StatementNodewhileKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:Tokensemicolon:Token
ForNode
for loop in either syntax. Rozšiřuje StatementNode. Implementuje Stringable.
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.
Implementuje Stringable.
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. Implementuje
Stringable.
switchKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:TokenopenBrace:?Tokencolon:?TokenleadingSemicolon:?Tokencases:NodeList<CaseNode>closeBrace:?TokenendKeyword:?Tokensemicolon:?Token
BreakNode
break with an optional level. Rozšiřuje StatementNode. Implementuje Stringable.
breakKeyword:Tokenexpr:?ExpressionNodesemicolon:Token
ContinueNode
continue with an optional level. Rozšiřuje StatementNode. Implementuje Stringable.
continueKeyword:Tokenexpr:?ExpressionNodesemicolon:Token
ReturnNode
return with an optional value. Rozšiřuje StatementNode. Implementuje Stringable.
returnKeyword:Tokenexpr:?ExpressionNodesemicolon:Token
GlobalNode
global statement. Rozšiřuje StatementNode. Implementuje Stringable.
globalKeyword:Tokenvars:SeparatedNodeList<ExpressionNode>semicolon:Token
StaticNode
static variable declaration. Rozšiřuje StatementNode. Implementuje Stringable.
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.
Implementuje Stringable.
echoKeyword:Tokenexprs:SeparatedNodeList<ExpressionNode>semicolon:Token
UnsetNode
unset statement. Rozšiřuje StatementNode. Implementuje Stringable.
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. Implementuje Stringable.
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. Implementuje
Stringable.
tryKeyword:Tokenbody:Statement\BlockNodecatches:NodeList<CatchNode>finally:?FinallyNode
GotoNode
goto statement. Rozšiřuje StatementNode. Implementuje Stringable.
gotoKeyword:Tokenlabel:IdentifierNodesemicolon:Token
LabelNode
Label for goto. Rozšiřuje StatementNode. Implementuje Stringable.
name:IdentifierNodecolon:Token
FunctionNode
Function declaration. Rozšiřuje StatementNode. Implementuje Stringable.
attributes:NodeList<AttributeGroupNode>functionKeyword:TokenbyRef:?Tokenname:IdentifierNodeopenParen:Tokenparams:SeparatedNodeList<ParameterNode>closeParen:Tokencolon:?TokenreturnType:?TypeNodebody:Statement\BlockNode
ClassNode
Class declaration. Rozšiřuje StatementNode. Implementuje Stringable,
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 Stringable,
ClassLikeNode.
attributes:NodeList<AttributeGroupNode>interfaceKeyword:Tokenname:IdentifierNodeextendsKeyword:?Tokenextends:?SeparatedNodeList<NameNode>openBrace:Tokenmembers:NodeList<MemberNode>closeBrace:Token
TraitNode
Trait declaration. Rozšiřuje StatementNode. Implementuje Stringable,
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
Stringable, 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. Implementuje
Stringable.
dollar:?TokenopenBrace:?Tokenname:Token|ExpressionNodecloseBrace:?Token
ArrayDimFetchNode
Array or string offset access: $a[$i], $a[]. Rozšiřuje ExpressionNode. Implementuje
Stringable.
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. Implementuje Stringable.
object:ExpressionNodeoperator:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Token
StaticPropertyFetchNode
Static property access: A::$b. Rozšiřuje ExpressionNode. Implementuje Stringable.
class:NameNode|ExpressionNodedoubleColon:Tokenname:Expression\VariableNode
ClassConstantFetchNode
Class constant access: A::B, A::class, A::{expr}. Rozšiřuje ExpressionNode. Implementuje
Stringable.
class:NameNode|ExpressionNodedoubleColon:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Token
ConstantFetchNode
Constant access by name: FOO, \Foo\BAR, true. Rozšiřuje ExpressionNode. Implementuje
Stringable.
name:NameNode
FunctionCallNode
Function call by name or on an expression. Rozšiřuje ExpressionNode. Implementuje Stringable.
name:NameNode|ExpressionNodeargs:ArgumentListNode
MethodCallNode
Method call with → or ?->. Rozšiřuje ExpressionNode. Implementuje Stringable.
object:ExpressionNodeoperator:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Tokenargs:ArgumentListNode
StaticCallNode
Static method call: A::b(), $a::b(), A::{expr}(). Rozšiřuje ExpressionNode. Implementuje
Stringable.
class:NameNode|ExpressionNodedoubleColon:TokenopenBrace:?Tokenname:IdentifierNode|ExpressionNodecloseBrace:?Tokenargs:ArgumentListNode
NewNode
Instantiation of a named, dynamic or anonymous class. Rozšiřuje ExpressionNode. Implementuje
Stringable.
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. Implementuje Stringable.
arrayKeyword:?TokenopenDelimiter:Tokenitems:SeparatedNodeList<ArrayItemNode|EmptyArrayItemNode>closeDelimiter:Token
ListNode
Destructuring with list(…). Rozšiřuje ExpressionNode. Implementuje Stringable.
listKeyword:TokenopenParen:Tokenitems:SeparatedNodeList<ArrayItemNode|EmptyArrayItemNode>closeParen:Token
AssignNode
Assignment, plain or compound (+=, ??=); the operator token tells which. Rozšiřuje ExpressionNode. Implementuje
Stringable.
var:ExpressionNodeoperator:Tokenexpr:ExpressionNode
AssignRefNode
Assignment by reference: $a = &$b. Rozšiřuje ExpressionNode. Implementuje Stringable.
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 Stringable.
left:ExpressionNodeoperator:Tokenright:ExpressionNode
UnaryNode
Prefix operation: +, -, !, ~, @, ++, –. Rozšiřuje ExpressionNode. Implementuje Stringable.
operator:Tokenexpr:ExpressionNode
PostfixNode
Postfix increment or decrement. Rozšiřuje ExpressionNode. Implementuje Stringable.
expr:ExpressionNodeoperator:Token
CastNode
Type cast; the cast token keeps its spelling including inner whitespace: ( int ). Rozšiřuje ExpressionNode.
Implementuje Stringable.
cast:Tokenexpr:ExpressionNode
TernaryNode
Ternary conditional ($cond ? $if : $else) or the elvis form ($cond ?: $else). Rozšiřuje ExpressionNode.
Implementuje Stringable.
cond:ExpressionNodequestion:Tokenif:?ExpressionNodecolon:Tokenelse:ExpressionNode
InstanceofNode
instanceof check against a name or a dynamic class. Rozšiřuje ExpressionNode. Implementuje
Stringable.
expr:ExpressionNodeinstanceofKeyword:Tokenclass:NameNode|ExpressionNode
ParenthesizedNode
Expression in parentheses. Rozšiřuje ExpressionNode. Implementuje Stringable.
openParen:Tokenexpr:ExpressionNodecloseParen:Token
IssetNode
isset(…) with one or more variables. Rozšiřuje ExpressionNode. Implementuje Stringable.
issetKeyword:TokenopenParen:Tokenvars:SeparatedNodeList<ExpressionNode>closeParen:Token
EmptyNode
empty(…). Rozšiřuje ExpressionNode. Implementuje Stringable.
emptyKeyword:TokenopenParen:Tokenexpr:ExpressionNodecloseParen:Token
EvalNode
eval(…). Rozšiřuje ExpressionNode. Implementuje Stringable.
evalKeyword:TokenopenParen:Tokenexpr:ExpressionNodecloseParen:Token
IncludeNode
include, include_once, require or require_once; the keyword token tells which. Rozšiřuje ExpressionNode.
Implementuje Stringable.
includeKeyword:Tokenexpr:ExpressionNode
ExitNode
exit or die with optional arguments. Rozšiřuje ExpressionNode. Implementuje Stringable.
exitKeyword:Tokenargs:?ArgumentListNode
PrintNode
print expression. Rozšiřuje ExpressionNode. Implementuje Stringable.
printKeyword:Tokenexpr:ExpressionNode
YieldNode
yield, yield $value or yield $key ⇒ $value. Rozšiřuje ExpressionNode. Implementuje
Stringable.
yieldKeyword:Tokenkey:?ExpressionNodedoubleArrow:?Tokenvalue:?ExpressionNode
YieldFromNode
yield from expression. Rozšiřuje ExpressionNode. Implementuje Stringable.
yieldFromKeyword:Tokenexpr:ExpressionNode
ThrowNode
throw expression. Rozšiřuje ExpressionNode. Implementuje Stringable.
throwKeyword:Tokenexpr:ExpressionNode
CloneNode
clone expression; clone(…) with arguments is a function call. Rozšiřuje ExpressionNode. Implementuje
Stringable.
cloneKeyword:Tokenexpr:ExpressionNode
MatchNode
match expression. Rozšiřuje ExpressionNode. Implementuje Stringable.
matchKeyword:TokenopenParen:Tokencond:ExpressionNodecloseParen:TokenopenBrace:Tokenarms:SeparatedNodeList<MatchArmNode>closeBrace:Token
ClosureNode
Anonymous function, optionally static, with captured variables. Rozšiřuje ExpressionNode. Implementuje
Stringable.
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
Stringable.
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. Implementuje Stringable.
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. Implementuje
Stringable.
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. Implementuje
Stringable.
name:Tokenequals:?Tokendefault:?ExpressionNode
PropertyHookNode
Property hook (get, set) with a block body, an arrow body or none. Rozšiřuje Node. Implementuje
Stringable.
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. Implementuje Stringable.
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 Stringable.
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. Implementuje
Stringable.
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. Implementuje Stringable.
trait:NameNodedoubleColon:Tokenmethod:IdentifierNodeinsteadofKeyword:Tokentraits:SeparatedNodeList<NameNode>semicolon:Token
TraitAliasNode
Trait adaptation m as [modifier] [alias];. Rozšiřuje Node. Implementuje
Stringable.
trait:?NameNodedoubleColon:?Tokenmethod:IdentifierNodeasKeyword:Tokenmodifier:?Tokenalias:?IdentifierNodesemicolon:Token
EnumCaseNode
Enum case with an optional backing value. Rozšiřuje MemberNode. Implementuje Stringable.
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. Implementuje
Stringable.
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. Implementuje Stringable.
token:Token
StringNode
String literal without interpolation, quotes included; inside an interpolated string also a bare offset name
($a[key]). Rozšiřuje ExpressionNode. Implementuje Stringable.
token:Token
MagicConstantNode
Magic constant: __LINE__, __FILE__, __DIR__, __CLASS__, __TRAIT__, __METHOD__, __FUNCTION__, __PROPERTY__, __NAMESPACE__.
Rozšiřuje ExpressionNode. Implementuje Stringable.
token:Token
InterpolatedStringNode
Double-quoted string with interpolated variables or expressions. Rozšiřuje ExpressionNode. Implementuje
Stringable.
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.
Implementuje Stringable.
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. Implementuje
Stringable.
text:Token
InterpolationNode
Braced interpolation inside a string: {$expr} or ${name}. Rozšiřuje Node. Implementuje
Stringable.
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. Implementuje
Stringable.
name:NameNode
NullableTypeNode
Nullable type: ?T. Rozšiřuje TypeNode. Implementuje Stringable.
question:Tokentype:TypeNode
UnionTypeNode
Union type A|B; a member may be a parenthesized intersection (DNF). Rozšiřuje TypeNode. Implementuje
Stringable.
types:SeparatedNodeList<TypeNode>
IntersectionTypeNode
Intersection type A&B, parenthesized inside a union. Rozšiřuje TypeNode. Implementuje
Stringable.
openParen:?Tokentypes:SeparatedNodeList<TypeNode>closeParen:?Token