ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValueVerifie si la propriété a une valeur par défault

Description

public ReflectionProperty::hasDefaultValue(): bool

Vérifie si la propriété a été déclarée avec une valeur par défault, incluant une valeur par défault implicite null. Retourne false pour les propriétés typées sans valeur par défault (ou les propriétés dynamiques).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Si la propriété a une valeur par défault (incluant null), true est retourné; si la propriété est typé sans valeur par défault déclarée ou est une propriété dynamique, false est retourné.

Exemples

Exemple #1 Exemple 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()); // Dynamic property
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Not defined property
?>

L'exemple ci-dessus va afficher :

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

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

Voir aussi

add a note

User Contributed Notes 1 note

up
0
vuryss at gmail dot com
2 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