Updated PHP Windows builds for Brotli security fix

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValue — Returns the default value declared for a property

Опис

public function ReflectionProperty::getDefaultValue(): mixed

Gets the implicit or explicitly declared default value for a property.

Параметри

У цієї функції немає параметрів.

Значення, що повертаються

The default value if the property has any default value (including null). If there is no default value, then null is returned. It is not possible to differentiate between a null default value and an uninitialized typed property. Use ReflectionProperty::hasDefaultValue() to detect the difference.

Зауваження:

For promoted properties, the default value is only applied to the constructor parameter, not to the property itself, so this method returns null and ReflectionProperty::hasDefaultValue() returns false. Use ReflectionParameter::getDefaultValue() on the matching constructor parameter to get it.

Журнал змін

Версія Опис
8.5.0 Calling ReflectionProperty::getDefaultValue() for properties without default values has been deprecated.

Приклади

Приклад #1 ReflectionProperty::getDefaultValue() example

<?php
class Foo {
    public $bar = 1;
    public ?int $baz;
    public int $boing = 0;
    public function __construct(public string $bak = "default") { }
}

$ro = new ReflectionClass(Foo::class);
var_dump($ro->getProperty('bar')->getDefaultValue());
var_dump($ro->getProperty('baz')->getDefaultValue());
var_dump($ro->getProperty('boing')->getDefaultValue());
var_dump($ro->getProperty('bak')->getDefaultValue());
?>

Поданий вище приклад виведе:

int(1)
NULL
int(0)
NULL

Прогляньте також

+add a note

User Contributed Notes 1 note

up
12
rwalker dot php at gmail dot com
5 years ago
An equivalent for PHP 7:

<?php
$reflectionProperty = new \ReflectionProperty(Foo::class, 'bar');

//PHP 8:
$defaultValue = $reflectionProperty->getDefaultValue();

//PHP 7:
$defaultValue = $reflectionProperty->getDeclaringClass()->getDefaultProperties()['bar'] ?? null;
?>
To Top