(PHP 8)
ReflectionProperty::hasDefaultValue — Проверяет, задано ли для свойства значение по умолчанию
Проверяет, задано ли для свойства значение по умолчанию, включая null
. Возвращает false
для типизированных свойств без заданного значения по умолчанию и для динамически определяемых свойств.
У этой функции нет параметров.
Если для свойства задано значение по умолчанию (включая null
), то возвращает true
.
Если свойство типизированное и для него не задано значение по умолчанию, либо если
это динамически определяемое свойство, то возвращает false
.
Пример #1 Пример использования ReflectionProperty::hasDefaultValue()
<?php
class Foo {
public $bar;
public ?int $baz;
public ?int $foo = null;
public int $boing;
public function __construct()
{
$this->ping = '';
}
}
$ro = new ReflectionObject(new Foo());
var_dump($ro->getProperty('bar')->hasDefaultValue());
var_dump($ro->getProperty('baz')->hasDefaultValue());
var_dump($ro->getProperty('foo')->hasDefaultValue());
var_dump($ro->getProperty('boing')->hasDefaultValue());
var_dump($ro->getProperty('ping')->hasDefaultValue()); // Динамическое свойство
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Неопределённое свойство
?>
Результат выполнения приведённого примера:
bool(true) bool(false) bool(true) bool(false) bool(false) Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php