Php 访问数组键值而不指定键
我有: 新的$controller正在变成“狗玩具”,这不是我想要的 如何更改现有的内容,使Php 访问数组键值而不指定键,php,arrays,Php,Arrays,我有: 新的$controller正在变成“狗玩具”,这不是我想要的 如何更改现有的内容,使$controller=新索引?某些变化: public $staticRoutes = array( 'dog-toys' => 'Index', ) ; if(array_key_exists($controller, $this->staticRoutes)) { $controller = new $controller ; } 我现在无法测
$controller=新索引代码>?某些变化:
public $staticRoutes = array(
'dog-toys' => 'Index',
) ;
if(array_key_exists($controller, $this->staticRoutes))
{
$controller = new $controller ;
}
我现在无法测试,因此为了安全起见,您还可以执行以下操作:
$controller = new ${staticRoutes[$controller]} ;
以下方面的一些变化:
public $staticRoutes = array(
'dog-toys' => 'Index',
) ;
if(array_key_exists($controller, $this->staticRoutes))
{
$controller = new $controller ;
}
我现在无法测试,因此为了安全起见,您还可以执行以下操作:
$controller = new ${staticRoutes[$controller]} ;
您需要实际使用$staticRoutes
数组,如下所示:
$ctrl = $staticRoutes[$controller];
$controller = new $ctrl;
注意:为了清晰起见,我更改了分配给的变量的名称。我还假设尝试实例化此控制器的代码位于定义了$staticRoutes
属性的同一类(或继承类)(因此使用$this
)。您需要实际使用$staticRoutes
数组,如下所示:
$ctrl = $staticRoutes[$controller];
$controller = new $ctrl;
注意:为了清晰起见,我更改了分配给的变量的名称。我还假设尝试实例化此控制器的代码位于定义了$staticRoutes
属性的同一类(或继承类)中(因此使用$this
)。OP-这是有效的,因为您的数组被称为关联数组。您的$controller
变量实际上引用了该数组的键,因此您可以使用与索引(编号)数组相同的方式访问该值-数组[key]
.OP-这是有效的,因为您的数组被称为关联数组。您的$controller
变量实际上引用了该数组的键,因此您可以使用与索引(编号)数组相同的方式访问值-数组[key]
。