TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1018 B
40 lines
1018 B
--TEST--
|
|
Symfony ErrorHandler pattern: dynamic static property name with multidimensional isset
|
|
--FILE--
|
|
<?php
|
|
|
|
class FinalMemberRegistry
|
|
{
|
|
private static array $finalConstants = [
|
|
'ParentClass' => [
|
|
'STATUS' => 'ParentClass::STATUS',
|
|
],
|
|
];
|
|
|
|
private static array $finalProperties = [
|
|
'ParentClass' => [
|
|
'name' => 'ParentClass::$name',
|
|
],
|
|
];
|
|
|
|
public static function lookup(string $type, string $class, string $name): ?string
|
|
{
|
|
if (isset(self::${$type}[$class][$name])) {
|
|
return self::${$type}[$class][$name];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function main(): void
|
|
{
|
|
var_dump(FinalMemberRegistry::lookup('finalConstants', 'ParentClass', 'STATUS'));
|
|
var_dump(FinalMemberRegistry::lookup('finalProperties', 'ParentClass', 'name'));
|
|
var_dump(FinalMemberRegistry::lookup('finalProperties', 'ParentClass', 'missing'));
|
|
}
|
|
?>
|
|
--EXPECT--
|
|
string(19) "ParentClass::STATUS"
|
|
string(18) "ParentClass::$name"
|
|
NULL
|
|
|