0

我有:

public $staticRoutes = array(
        'dog-toys' => 'Index',
        ) ;

if(array_key_exists($controller, $this->staticRoutes))
{
    $controller = new $controller ;
}

新的 $controller 正在变成“狗玩具”,这不是我想要的。

我怎样才能改变我所拥有的$controller = new Index ;呢?

4

2 回答 2

2

一些变化:

$controller = new ${staticRoutes[$controller]} ;

我现在无法测试它,所以为了安全起见,你也可以这样做:

$ctrl = $staticRoutes[$controller];
$controller = new $ctrl;
于 2012-12-03T20:06:10.117 回答
1

你需要$staticRoutes像这样实际使用你的数组:

$controller_instance = new $this->staticRoutes[$controller];

请注意,为清楚起见,我更改了您分配给的变量的名称。我还假设尝试实例化此控制器的代码$staticRoutes位于定义属性的同一类(或继承类)中(因此使用$this)。

于 2012-12-03T20:09:05.967 回答