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
|
--TEST--
GH-20217 (ReflectionClass::isIterable() should return false for classes with property hooks)
--FILE--
<?php
class ClassWithPropertyHooks
{
public string $name {
get => 'virtual';
}
}
class IterableClassWithPropertyHooks implements IteratorAggregate
{
public string $name {
get => 'virtual';
}
public function getIterator(): Traversable
{
return new ArrayIterator([]);
}
}
$classes = [
'ClassWithPropertyHooks' => false,
'IterableClassWithPropertyHooks' => true,
];
foreach ($classes as $className => $expected) {
$status = (new ReflectionClass($className)->isIterable() === $expected) ? 'PASS' : 'FAIL';
echo "$className: $status\n";
}
?>
--EXPECT--
ClassWithPropertyHooks: PASS
IterableClassWithPropertyHooks: PASS
|