具有变量名称的"New class extends"



是否可以使用变量而不是其名称来创建类?

而不是:

class weirdclassname extends WP_widget { .... }

我想:

class $nameVariable extends WP_widget { .... }

我需要它,因为我创建了多个类,并且必须发明许多不同的唯一名称来防止冲突。我的想象力已经在哭了=|

您可以使用函数 eval 动态定义类 https://implode.io/uP0WXH

class Foo
{
}
$child = <<<CLASS
class %s extends Foo
{
    public $name = '%s';
}
CLASS;
$classNames = ['Class1', 'Class2', 'Class3'];
foreach ($classNames as $className) {
    eval(sprintf($child, $className, $className));
}
print_r(new Class1);
print_r(new Class2);
print_r(new Class3);

最新更新