PHP Conference Japan 2024

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValue返回为属性声明的默认值

描述

public ReflectionProperty::getDefaultValue(): 混合

获取属性的隐式或显式声明的默认值。

参数

此函数没有参数。

返回值

如果属性有任何默认值(包括null),则返回默认值。如果没有默认值,则返回null。无法区分null默认值和未初始化的类型化属性。使用ReflectionProperty::hasDefaultValue()来检测差异。

示例

示例 #1 ReflectionProperty::getDefaultValue() 示例

<?php
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

另请参阅

添加注释

用户贡献的注释 1 条注释

11
rwalker dot php at gmail dot com
3 年前
PHP 7 的等效项

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

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

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