PHP 8.2.28 Released!

ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValueVerifica se a propriedade tem um valor padrão declarado

Descrição

public ReflectionProperty::hasDefaultValue(): bool

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).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

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.

Exemplos

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

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
1
vuryss at gmail dot com
11 days ago
It is useful to note that if this is used on a promoted property, which has a default value, it does not work as expected. The default value is related to the constructor parameter, not to the property itself. So for example, if you reflect this property:

<?php
class SomeClass
{
public function
__construct(
public ?
string $property = null,
) {
}
}
?>

The ReflectionProperty::hasDefaultValue will return false.
To Top