ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValueПроверяет, задано ли для свойства значение по умолчанию

Описание

public ReflectionProperty::hasDefaultValue ( ) : bool

Проверяет, задано ли для свойства значение по умолчанию, включая null. Возвращает false для типизированных свойств без заданного значения по умолчанию и для динамически определяемых свойств.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если для свойства задано значение по умолчанию (включая null), то возвращает true. Если свойство типизированное и для него не задано значение по умолчанию, либо если это динамически определяемое свойство, то возвращает false.

Примеры

Пример #1 Пример использования ReflectionClass::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()); // Dynamic property
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Not defined property
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php

Смотрите также