1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
--TEST--
Reflection Bug #81611 (ArgumentCountError when getting default value from ReflectionParameter with new)
--FILE--
<?php
class Bar
{
}
class Foo extends Bar
{
public function doFoo(object $test = new self()): object
{
return $test;
}
public function doBar(object $test = new parent()): object
{
return $test;
}
}
$ref = new \ReflectionClass(Foo::class);
foreach (['doFoo', 'doBar'] as $method) {
$params = $ref->getMethod($method)->getParameters();
foreach ($params as $param) {
echo "isDefaultValueAvailable:\n";
var_dump($param->isDefaultValueAvailable());
echo "isDefaultValueConstant:\n";
var_dump($param->isDefaultValueConstant());
echo "getDefaultValueConstantName:\n";
var_dump($param->getDefaultValueConstantName());
echo "getDefaultValue:\n";
var_dump($param->getDefaultValue());
echo "\n";
}
}
?>
--EXPECT--
isDefaultValueAvailable:
bool(true)
isDefaultValueConstant:
bool(false)
getDefaultValueConstantName:
NULL
getDefaultValue:
object(Foo)#2 (0) {
}
isDefaultValueAvailable:
bool(true)
isDefaultValueConstant:
bool(false)
getDefaultValueConstantName:
NULL
getDefaultValue:
object(Bar)#3 (0) {
}
|