ReflectionProperty::getDefaultValue
(PHP 8)
ReflectionProperty::getDefaultValue — プロパティで宣言されたデフォルト値を返す
パラメータ
この関数にはパラメータはありません。
戻り値
プロパティに何かしらデフォルト値が存在する場合(null
も含みます)、
それを返します。デフォルト値がない場合、null
を返します。
デフォルト値が null
の場合と、型付きプロパティが初期化されてない場合は区別できません。
それらを区別するには、ReflectionProperty::hasDefaultValue() を使って下さい。
例
例1 ReflectionProperty::getDefaultValue() の例
<?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
rwalker dot php at gmail dot com ¶
3 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;
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google