提问人:d-_-b 提问时间:6/10/2014 最后编辑:d-_-b 更新时间:6/10/2014 访问量:20767
将变量变量设置为数组键
set variable variable as array key
问:
我不确定如何问这个问题,但这里是:
$id = 1;
$age = 2;
$sort = "id"; // or "age";
$arr = array($$sort => 'string'); // so that it becomes 1 => 'string'
^ what goes here? // instead of 'id' => string'
这是角色用来“变量变量”的东西吗?&
或者也许?eval
答:
1赞
jeroen
6/10/2014
#1
我不会为此使用变量变量,而是使用一个数组,将正确的键连接到您需要的值:
$sorts = array('id' => 1, 'age' => 2);
$sort = 'id';
$arr = array($sorts[$sort] => 'string');
举个例子。
5赞
Daryl Gill
6/10/2014
#2
关于你的问题的主题。使用 PHP 的逻辑,我可以看到这样做的最好方法是在数组定义之外分配变量:
$id = 1;
$age = 2;
$sort = "id"; // or "age";
$Key = $$sort;
$arr = array($Key => 'string');
print_r($arr);
其中输出:
数组 ( [1] => 字符串 )
虽然,就个人而言。我建议避免这种方法。最好显式定义密钥,以帮助回溯/调试代码。你要做的最后一件事,就是在变量变量的迷宫中寻找。特别是,如果它们是动态创建的
修补。我有这个;
$arr[$$sort] = "Value";
print_r($arr);
我已经研究了创建函数的方法。我看不出有可行的方法可以成功地做到这一点。根据我提供的信息(定义数组定义之外),希望这将引导您朝着正确的方向前进
2赞
srain
6/10/2014
#3
如果您使用:
$arr = array($sort => 'string');
将是 ,但如果您使用id => string
$arr = array($$sort => 'string');
$sort
will be 和 will be ,它的值是 ,所以:id
$$sort
$id
1
1 => string
上一个:循环变量变量,非法字符串偏移量
下一个:PHP 变量混淆
评论