class PHPParameter extends BasePHPElement (View source)

Methods

string|null
getName()

No description

void
setName(string|null $name)

No description

string|null
getId()

No description

void
setId(string|null $id)

No description

getStubsMetadata()

No description

__construct(string|null $name)

No description

int
getPosition()

No description

void
setPosition(int $position)

No description

bool
isOptional()

No description

void
setIsOptional(bool $isOptional)

No description

bool
isVariadic()

No description

void
setIsVariadic(bool $isVariadic)

No description

bool
isPassedByReference()

No description

void
setIsPassedByReference(bool $isPassedByReference)

No description

bool
isDeprecated()

No description

void
setDeprecated(bool $isDeprecated)

No description

mixed
getDefaultValue()

Resolves a deferred default value on first read, then caches it.

void
setDefaultValue(mixed $defaultValue)

No description

void
setDefaultValueEvaluator(Closure $evaluator)

No description

bool
hasDefaultValue()

No description

void
setHasDefaultValue(bool $hasDefaultValue)

No description

Details

string|null getName()

No description

Return Value

string|null

void setName(string|null $name)

No description

Parameters

string|null $name

Return Value

void

string|null getId()

No description

Return Value

string|null

void setId(string|null $id)

No description

Parameters

string|null $id

Return Value

void

StubsMetadata|null getStubsMetadata()

No description

Return Value

StubsMetadata|null

StubsMetadata initStubsMetadata()

No description

Return Value

StubsMetadata

__construct(string|null $name)

No description

Parameters

string|null $name

int getPosition()

No description

Return Value

int

void setPosition(int $position)

No description

Parameters

int $position

Return Value

void

bool isOptional()

No description

Return Value

bool

void setIsOptional(bool $isOptional)

No description

Parameters

bool $isOptional

Return Value

void

bool isVariadic()

No description

Return Value

bool

void setIsVariadic(bool $isVariadic)

No description

Parameters

bool $isVariadic

Return Value

void

bool isPassedByReference()

No description

Return Value

bool

void setIsPassedByReference(bool $isPassedByReference)

No description

Parameters

bool $isPassedByReference

Return Value

void

bool isDeprecated()

No description

Return Value

bool

void setDeprecated(bool $isDeprecated)

No description

Parameters

bool $isDeprecated

Return Value

void

mixed getDefaultValue()

Resolves a deferred default value on first read, then caches it.

This is the one getter here that is not a plain field read, which reads as a violation of the "models are pure data holders" rule — so, why it has to be deferred:

A default value may reference a constant (PHP_INT_MAX, SOME\Ext::FLAG) that is not resolvable at the moment the parameter is parsed, because the constant may be declared in a stub file that has not been parsed yet. Evaluating eagerly in StubParameterParser would therefore resolve some defaults to null purely because of file ordering; the evaluator exists so resolution happens after StubConstantRegistry is fully populated.

The mutation is memoisation of a deterministic computation, so the value observed is the same on every call — but it is genuinely deferred work, not a field read. Moving it out would mean a post-parse resolution pass over every parameter before serialization.

A failure to evaluate yields null rather than propagating: the evaluator normalises everything it cannot compute (including DivisionByZeroError, see NikicConstExprEvaluatorTrait) to \RuntimeException, which is absorbed here.

Return Value

mixed

void setDefaultValue(mixed $defaultValue)

No description

Parameters

mixed $defaultValue

Return Value

void

void setDefaultValueEvaluator(Closure $evaluator)

No description

Parameters

Closure $evaluator

Return Value

void

bool hasDefaultValue()

No description

Return Value

bool

void setHasDefaultValue(bool $hasDefaultValue)

No description

Parameters

bool $hasDefaultValue

Return Value

void