PHP 8.1.0 RC 4 available for testing

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValueプロパティで宣言されたデフォルト値を返す

説明

public ReflectionProperty::getDefaultValue(): mixed

プロパティに明示または黙示的に宣言されているデフォルト値を取得します。

パラメータ

この関数にはパラメータはありません。

返り値

プロパティに何かしらデフォルト値が存在する場合(nullも含みます)、 それを返します。デフォルト値がない場合、null を返します。 デフォルト値が null の場合と、型付きプロパティが初期化されてない場合は区別できません。 それらを区別するには、ReflectionProperty::hasDefaultValue() を使って下さい。

例1 ReflectionProperty::getDefaultValue() の例

<?php
class Foo {
    public 
$bar 1;
    public ?
int $baz;
    public 
int $boing 0;
}

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

上の例の出力は以下となります。

int(1)
NULL
int(0)

参考

add a note add a note

User Contributed Notes 1 note

up
1
rwalker dot php at gmail dot com
6 months 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