【问题标题】:what is "$$" in PHPPHP中的“$$”是什么
【发布时间】:2011-05-09 08:46:46
【问题描述】:

我看到了这段代码

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

什么是代码“$$”?

【问题讨论】:

标签: php variable-variables


【解决方案1】:
【解决方案2】:
foreach($_POST as $key=>$value)$$key=$value;

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

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

【讨论】:

  • 嗨,我是 cfreak,我是一名 PHP 编码员。现在你认识我了。我绝对讨厌它。 :-)(当然我一点也不喜欢 PHP,但它支付了账单,所以我这样做了)
  • 尽管这是不好的做法......我喜欢它!我曾经在 $_POST 中有 50 个条目,为每个条目创建一个变量绝对不好玩(即使使用 Excel 之类的东西自动执行)。真希望我当时就知道这条捷径。
  • 请注意,您可以使用extract($_POST,EXTR_PREFIX_ALL,"p_") 来实现相同的效果——加上变量前缀的更多安全性。 array_map 过滤的奖励积分。
  • 另外,写$_POST['foo']有什么问题?我从来没有觉得有必要从$_POST 中提取(手动或以其他方式)变量,除非我有特定理由对那个变量进行额外处理。跨度>
【解决方案3】:

这就是邪恶。

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

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

【讨论】:

  • @VoteyDisciple;那是无穷无尽的吗?我可以有$$$foo 吗?还是停在两点?
  • @Beemer:没完没了。顺便说一句,尝试比询问并等待答案更快。
  • @zerkms:谢谢你的回答,但你有没有想到我手边可能没有编译器?
  • @zerkms:很酷的链接,这正是我问我问题的原因。如果我不问这个问题,我就不会知道这个链接。我要求得到比我刚才要求的更多的东西。谢谢!
  • 我可以看到它是多么令人困惑,因此是“邪恶的”,但这太优雅了。有时它是一个非常有用的功能,它需要其他语言的杂乱语法才能完成。它与 C++ 中的取消引用指针没有太大区别。如果这很好,那么也应该这样。如果这是邪恶的,那么 C++ 中的多个指针取消引用也是如此
猜你喜欢
  • 2015-08-26
  • 2017-08-15
  • 2011-01-13
  • 2011-03-04
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多