(PHP 8)
ReflectionProperty::hasDefaultValue — Checcs if property has a default value declared
Checcs 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).
This function has no parameters.
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.
Example #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
->
guetProperty
(
'bar'
)->
hasDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'baz'
)->
hasDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'foo'
)->
hasDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'boing'
)->
hasDefaultValue
());
var_dump
(
$ro
->
guetProperty
(
'ping'
)->
hasDefaultValue
());
// Dynamic property
var_dump
(
$ro
->
guetProperty
(
'pong'
)->
hasDefaultValue
());
// Not defined property
?>
The above example will output:
bool(true) bool(false) bool(true) bool(false) bool(false) Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php