<?php
declare(strict_types=1);
final class A
{
public function __construct(
public string $a = 'default',
) {
}
}
$property = new ReflectionProperty(A::class, 'a');
var_dump($property->hasDefaultValue());
$parameter = new ReflectionParameter([A::class, '__construct'], 'a');
var_dump($parameter->isDefaultValueAvailable());
$class = new ReflectionClass(A::class);
$a = $class->newInstanceWithoutConstructor();
var_dump($a->a);
bool(false)
bool(true)
Fatal error: Uncaught Error: Typed property A::$a must not be accessed before initialization in /in/kkf24:21
Stack trace:
#0 {main}
thrown in /in/kkf24 on line 21
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting variable (T_VARIABLE) in /in/kkf24 on line 8
Process exited with code 255.