PHP 8.4.0 Alpha 2 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;
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
11
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;
?>
To Top