提问人:Cyclone 提问时间:9/7/2011 更新时间:10/30/2014 访问量:1267
变量变量中的美元符号是否被视为取消引用运算符?
Is the dollar sign in a variable variable considered the dereference operator?
问:
我正在向某人展示如何在 PHP 中创建变量变量变量(我只建议永远不要使用它们,这是可怕的做法,如果你在实际生产代码中使用变量变量变量,你就是一个坏人),他们问美元符号在这种情况下是否充当取消引用运算符。
它实际上并没有创建对其他变量的引用,所以我真的不认为它是 deref 操作。变量的文档甚至根本没有提到引用。
谁是对的?我不认为变量变量正在创建引用,因此美元符号不是取消引用运算符。
以下是一些示例代码,供您观看乐趣(或内容带来痛苦):
<?php
$a = 'c';
$b = 'a';
$c = 'hello';
echo($$$b); //hello
答:
4赞
webbiedave
9/7/2011
#1
变量中的美元符号是否被视为取消引用 算子?
不。PHP 没有取消引用运算符。
不应将变量变量视为取消引用,而应将其视为通过字符串访问符号树。例如:
$bar = 1;
echo ${'bar'};
您可以使用变量而不是字符串文本来动态执行此操作:
$bar = 1;
$foo = 'bar';
echo ${$foo};
PHP 语法允许您删除大括号,但这仍然是通过字符串访问符号表的问题。不涉及引用/取消引用。
0赞
john borelli
10/30/2014
#2
不,它不是去引用任何东西......如果有的话,那就是引用存储变量名称的引用来引用存储变量名称的存储值。是双重引用还是引用的引用.....de-ref 意味着一个变量是另一个变量子集的一部分。
评论
*x
$