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.
 
 

32 lines
708 B

--TEST--
anonymous class stores constructor state and uses it in methods
--FILE--
<?php
abstract class AnonStateVisitor
{
abstract public function visit(string $name): string;
}
function main(): void
{
$prefixes = ['node' => 'Node', 'leaf' => 'Leaf'];
$visitor = new class($prefixes) extends AnonStateVisitor {
public function __construct(private array $prefixes)
{
}
public function visit(string $name): string
{
return ($this->prefixes[$name] ?? 'Unknown') . ':' . $name;
}
};
var_dump($visitor->visit('node'));
var_dump($visitor->visit('missing'));
}
?>
--EXPECT--
string(9) "Node:node"
string(15) "Unknown:missing"