0

我正在尝试从另一个命令运行一系列命令。类似于 cronjob 的东西,但具有最终用户的视图编辑添加选项。这是有效的:

                $fooCommand = new \App\Command\fooCommand();
                $barCommand = new \App\Command\barCommand();

但我需要的是:

            $classes = [
                "foo",
                "bar"
            ];
            foreach ($classes as $class) {
                $otherCommand = new '\\App\\Command\\' .$class. Command();
                # code...
            }

类似的东西。迭代数组并启动类。实际上从数据库运行命令。

4

2 回答 2

0

你可以这样做:

foreach ($classes as $class) {
    $classWithNamespace = "\\App\\Command\\{$class}Command";
    $otherCommand = new $classWithNamespace();
}

PHP沙箱

于 2020-11-03T09:40:03.593 回答
0

您需要分开您的类名并使用variables 变量

foreach ($classes as $class) {
    $_class = "\\App\\Command\\{$class}Command";
    $class_name = $class . 'Command';
    $$class_name = new $_class;
    # code...
}
于 2020-11-03T09:37:50.453 回答