在PHP或Cakephp 3中使用variabel作为类名

问题描述

我正在尝试从另一个命令运行一个命令数组。类似于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...
            }

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

解决方法

您需要分隔您的类名并使用variables variable

foreach ($classes as $class) {
    $_class = "\\App\\Command\\{$class}Command";
    $class_name = $class . 'Command';
    $$class_name = new $_class;
    # code...
}
,

您可以这样做:

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

PHP Sandbox

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...