ReflectionProperty::getDefaultValue

(PHP 8)

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

描述

public 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

参见

添加笔记

用户贡献笔记 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