(PHP 8)
ReflectionProperty::hasDefaultValue — Verifica si la propiedad tiene un valor por omisión
Verifica si la propiedad ha sido declarada con un valor por omisión, incluyendo un valor por omisión
implícito null
. Retorna false
para las propiedades tipadas sin valor por omisión
(o las propiedades dinámicas).
Esta función no tiene parámetros.
Si la propiedad tiene un valor por omisión (incluyendo null
), true
es retornado;
si la propiedad es tipada sin valor por omisión declarado o es una propiedad dinámica, false
es retornado.
Ejemplo #1 Ejemplo 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()); // Propiedad dinámica
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Propiedad no definida
?>
El resultado del ejemplo sería:
bool(true) bool(false) bool(true) bool(false) bool(false) Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php