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.
 
 

41 lines
770 B

--TEST--
Symfony pattern: late static binding with new static and static return type
--FILE--
<?php
class BaseFactory
{
public string $name = 'base';
public static function create(string $name): static
{
$instance = new static();
$instance->name = $name;
return $instance;
}
}
class ChildFactory extends BaseFactory
{
public string $extra = 'child';
}
function main(): void
{
$base = BaseFactory::create('root');
$child = ChildFactory::create('leaf');
var_dump($base::class);
var_dump($base->name);
var_dump($child::class);
var_dump($child->name);
var_dump($child->extra);
}
?>
--EXPECT--
string(11) "BaseFactory"
string(4) "root"
string(12) "ChildFactory"
string(4) "leaf"
string(5) "child"