(PHP 8)
ReflectionProperty::hasDefaultValue — Verifica se a propriedade tem um valor padrão declarado
   Verifica se a propriedade foi declarada com um valor padrão, incluindo um valor implícito
   null. Retorna apenas false para propriedades digitadas sem valor padrão (ou
   propriedades dinâmicas).
  
Esta função não possui parâmetros.
   Se a propriedade tiver algum valor padrão (incluindo null) true é retornado;
   Se a propriedade for digitada sem um valor padrão declarado ou for uma propriedade dinâmica, false é retornado.
  
Exemplo #1 Exemplo de 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()); // Propriedade dinâmica
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Propriedade não definida
?>O exemplo acima produzirá:
bool(true) bool(false) bool(true) bool(false) bool(false) Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php
