我不知道该怎么问这个问题,但是下面是:
$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
?
关于你的问题。根据PHP的逻辑,我认为最好的方法是在数组定义之外为变量赋值:
$id = 1;
$age = 2;
$sort = "id"; // or "age";
$Key = $$sort;
$arr = array($Key => 'string');
print_r($arr);
输出:
然而,Array ([1] => string)
个人。我建议避免这种方法。最好显式地定义键,以帮助反向跟踪/调试代码。你最不想做的事,就是在一堆变量-变量的迷宫中寻找。特别是,如果它们是动态创建的
修修补补。我知道了;
$arr[$$sort] = "Value";
print_r($arr);
我已经研究了创建函数的方法。我看不出有什么可行的方法可以成功地做到这一点。有了我提供的信息(定义超出数组定义),希望这将引导您在正确的方向
如果使用:
$arr = array($sort => 'string');
将是id => string
,但是如果您使用
$arr = array($$sort => 'string');
$sort
为id
, $$sort
为$id
,其值为1
,因此:1 => string
我不会为此使用可变变量,而是使用将正确的键连接到所需值的数组:
$sorts = array('id' => 1, 'age' => 2);
$sort = 'id';
$arr = array($sorts[$sort] => 'string');
一个例子。