访问数组键值而不指定键

时间:2012-12-03 20:04:32

标签: php arrays

我有:

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

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

新的$控制器正在变成'狗玩具',这不是我想要的。

如何更改$controller = new Index ;

所拥有的内容

2 个答案:

答案 0 :(得分:2)

一些变体:

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

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

$ctrl = $staticRoutes[$controller];
$controller = new $ctrl;

答案 1 :(得分:1)

您需要实际使用$staticRoutes数组,如下所示:

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

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