变量变量未按预期工作,正在创建数组

Variable variables doesn't work as expected and is creating an array

提问人:KDJ 提问时间:5/28/2015 最后编辑:Rizier123KDJ 更新时间:5/28/2015 访问量:82

问:

我正在使用以下代码行:

$var{++$counter} = $results['row'];

我设置它的目标是创建这些变量:

$var1 = row 1
$var2 = row 2
$var3 = row 3

为什么它为 ?而不是只定义三个变量?$var

PHP 数组 变量

评论

2赞 Daan 5/28/2015
这样做:${"var".++$counter} = $results['row'];
2赞 mario 5/28/2015
因为这不是变量变量的正确语法。(这也是一个糟糕的用例。使用数组有什么问题?这里的目的是什么?
1赞 Kevin Nagurski 5/28/2015
大括号可用于数组位置,就像方括号一样。的PHP!
1赞 Rizier123 5/28/2015
@Daan 你回答了最后一个问题:stackoverflow.com/a/30504089/3933332:)?!
1赞 Daan 5/28/2015
@Rizier123 哦,哇,我什至没有注意到,编辑了那个答案。

答:

4赞 Rizier123 5/28/2015 #1

简单地说,因为它也可以用来访问数组,正如你可以从手册中读到的那样:{}

注意:方括号和大括号可以互换使用来访问数组元素(例如$array[42]和$array{42}在上面的例子中都会做同样的事情)。

表示以下 2 行相同:

$var{++$counter}
$var[++$counter] 

你想要的是变量变量,这将是这样的:

${"var" . ++$counter} = $results['row'];