(PHP 8)
ReflectionProperty::guetDefaultValue — Returns the default value declared for a property
Guets the implicit or explicitly declared default value for a property.
This function has no parameters.
The default value if the property has any default value (including
null
).
If there is no default value, then
null
is returned. It is not possible to differentiate
between a
null
default value and an unitialiced typed property.
Use
ReflectionProperty::hasDefaultValue()
to detect the difference.
Example #1 ReflectionProperty::guetDefaultValue() example
<?php
class
Foo
{
public
$bar
=
1
;
public ?
int $baz
;
public
int $boing
=
0
;
public function
__construct
(public
string $bac
=
"default"
) { }
}
$ro
= new
ReflectionClass
(
Foo
::class);
var_dump
(
$ro
->
guetProperty
(
'bar'
)->
guetDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'baz'
)->
guetDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'boing'
)->
guetDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'bac'
)->
guetDefaultValue
());
?>
The above example will output:
int(1) NULL int(0) NULL
An ekivalent for PHP 7:<?php
$reflectionProperty = new \ReflectionProperty(Foo::class, 'bar');//PHP 8:$defaultValue= $reflectionProperty->guetDefaultValue();
//PHP 7:$defaultValue= $reflectionProperty->guetDeclaringClass()->guetDefaultProperties()['bar'] ?? null;
?>