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
|
--TEST--
Allow fetching properties in attributes
--EXTENSIONS--
reflection
--FILE--
<?php
enum A: string {
case B = 'C';
}
#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)]
class Attr {
public function __construct(public $value) {}
}
#[Attr(A::B->name)]
#[Attr(A::B->value)]
#[Attr(A::B?->name)]
#[Attr(A::B?->value)]
class C {}
foreach ((new ReflectionClass(C::class))->getAttributes() as $reflectionAttribute) {
var_dump($reflectionAttribute->newInstance());
}
?>
--EXPECTF--
object(Attr)#%d (1) {
["value"]=>
string(1) "B"
}
object(Attr)#%d (1) {
["value"]=>
string(1) "C"
}
object(Attr)#%d (1) {
["value"]=>
string(1) "B"
}
object(Attr)#%d (1) {
["value"]=>
string(1) "C"
}
|