ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValueChecks if property has a default value declared

Açıklama

public ReflectionProperty::hasDefaultValue(): bool

Checks whether the property was declared with a default value, including an implicit null default value. Only returns false for typed properties without default value (or dynamic properties).

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

If the property has any default value (including null) true is returned; if the property is typed without a default value declared or is a dynamic property, false is returned.

Örnekler

Örnek 1 ReflectionProperty::hasDefaultValue() example

<?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
?>

Yukarıdaki örneğin çıktısı:

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

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

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

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