ScalarFunction extends FunctionTree
Methods
- children() : array<int, FunctionTree>
- Every operand of this node that is an expression, in constructor order.
- eval() : mixed
- resolved() : bool
- True when this node and every node in children() can answer returns().
- returns() : Type<string|int, mixed>
- The type of the column this function produces, before any row is read.
- withChildren() : static
- A copy of this node with $children in place of children(): same count, same order, same per-element narrowing. Never mutates $this.
Methods
children()
Every operand of this node that is an expression, in constructor order.
public
children() : array<int, FunctionTree>
Raw scalars, enums, Types and scope-introducing bodies are fields, not children.
Return values
array<int, FunctionTree>eval()
public
eval(Row $row, FlowContext $context) : mixed
Parameters
- $row : Row
- $context : FlowContext
resolved()
True when this node and every node in children() can answer returns().
public
resolved() : bool
Return values
boolreturns()
The type of the column this function produces, before any row is read.
public
returns() : Type<string|int, mixed>
Column-representable only: MixedType and a multi-member UnionType are refused; NullType is permitted. A top-level OptionalType is permitted and is what "this column is nullable" means - it is the only legal OptionalType position for a declaration, because OptionalType never nests and type_bare() strips exactly one level.
Return values
Type<string|int, mixed>withChildren()
A copy of this node with $children in place of children(): same count, same order, same per-element narrowing. Never mutates $this.
public
withChildren(array<int, FunctionTree> $children) : static
Parameters
- $children : array<int, FunctionTree>