"New class extends" 名称来自变量

"New class extends" with a name from variable

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

而不是:

class weirdclassname extends WP_widget { .... }

我愿意:

class $nameVariable extends WP_widget { .... }

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

您可以使用函数 eval to define the class dynamically 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);