6

我正在向某人展示如何在 PHP 中创建可变变量变量(我只建议永远不要使用它们,这是一种可怕的做法,如果你在实际生产代码中使用可变变量变量,你就是一个坏人),他们问美元是否在这种情况下,符号充当解引用运算符。

它实际上并没有创建对其他变量的引用,所以我并不认为它是 deref 操作。变量变量的文档甚至根本没有提到引用。

谁是对的?我不认为变量变量正在创建引用,因此美元符号不是取消引用运算符。

以下是一些示例代码,供您欣赏(或给定内容的痛苦):

<?php

$a = 'c';
$b = 'a';
$c = 'hello';

echo($$$b); //hello
4

2 回答 2

4

变量变量中的美元符号是否被视为取消引用运算符?

不,PHP 没有取消引用运算符。

变量变量不应该被认为是取消引用,而是通过字符串访问符号树。例如:

$bar = 1;
echo ${'bar'};

您可以通过使用变量而不是字符串文字来动态执行此操作:

$bar = 1;
$foo = 'bar';
echo ${$foo};

PHP 语法允许您删除大括号,但它仍然是通过字符串访问符号表的问题。不涉及引用/取消引用。

于 2011-09-06T22:04:09.720 回答
0

不,它不是 DE 引用任何东西....如果有的话,它是引用存储变量名称的引用来引用存储变量名称的存储值....一种双重引用或引用的引用.....de-ref 意味着一个变量是另一个变量的子集的一部分。

于 2014-10-29T19:22:38.150 回答