PHP中的“$$”是什么

what is "$$" in PHP

提问人:meotimdihia 提问时间:11/13/2010 最后编辑:ajrealmeotimdihia 更新时间:11/13/2010 访问量:10477

问:

我看到了这个代码

if (is_null($$textVarName)) {
$$textVarName = $_defaultTexts[$type];
}

什么是代码“$$”?

php 变量

评论

0赞 Gordon 11/13/2010
$$ 在 PHP 中是什么意思的可能重复?
0赞 Gordon 11/13/2010
(相关) 该符号在PHP中是什么意思
0赞 Shivam Sharma 12/17/2018
可能重复 $$(美元或双美元)在 PHP 中是什么意思?

答:

41赞 VoteyDisciple 11/13/2010 #1

它就是邪恶。

这将获取其中的值并将其用作变量名称。例如:$textVarName

$foo = 'hello';
$hello = 'The Output';
echo $$foo; // displays "The Output"

评论

0赞 BeemerGuy 11/13/2010
@VoteyDisciple;那是无穷无尽的吗?我可以有吗?还是停在两点?$$$foo
7赞 zerkms 11/13/2010
@Beemer:它是无止境的。顺便说一句,尝试比询问和等待答案更快。
1赞 BeemerGuy 11/13/2010
@zerkms:谢谢你的回答,但是你有没有想过我可能手边没有编译器?
0赞 BeemerGuy 11/13/2010
@zerkms:很酷的链接,这正是我问问题的原因。如果我不问这个问题,我就不会知道这个链接。我要求得到比我刚才要求的更多。谢谢!
1赞 ahnbizcad 5/9/2015
我可以看到它会如何令人困惑,从而“邪恶”,但这太优雅了。它有时是一个非常有用的功能,需要其他语言的混乱语法才能完成。它与 C++ 中的取消引用指针没有太大区别。如果这很好,那么也应该这样做。如果这是邪恶的,那么C++中的多个指针取消引用也是如此
4赞 FatherStorm 11/13/2010 #2
foreach($_POST as $key=>$value)$$key=$value;

现在,如果以前的表单有一个名为“用户名”的字段,那么现在有一个名为 $username 的变量,用于保存表单中提交的值。 不是最好或安全的方法,但是当你有一个装满钉子的口袋时,这简直是一把锤子

这是非常糟糕的做法,从不鼓励,但我认识的所有PHP编码人员都暗中喜欢它。

评论

1赞 Cfreak 11/13/2010
嗨,我是 cfreak,我是一名 PHP 编码员。现在你认识我了。我非常讨厌它。:-)(当然,我一点也不喜欢PHP,但它支付了账单,所以我这样做了)
0赞 BeemerGuy 11/13/2010
尽管这是不好的做法......我喜欢!!我曾经有 50 个条目,为每个条目制作一个变量绝对不好玩(即使使用 Excel 之类的东西自动执行)。希望我当时就知道这个捷径。$_POST
5赞 mario 11/13/2010
请注意,您可以使用来实现相同的效果 - 以及使用变量前缀的安全性。过滤的奖励积分。extract($_POST,EXTR_PREFIX_ALL,"p_")array_map
0赞 VoteyDisciple 11/13/2010
另外,只是写作有什么问题?我从来没有觉得有必要从中提取(手动或其他方式)变量,除非我有特定的理由对该变量进行额外的处理。$_POST['foo']$_POST
2赞 Prisoner 11/13/2010 #3

有关参考,请参阅:http://php.net/manual/en/language.variables.variable.php