【发布时间】:2013-08-21 20:23:05
【问题描述】:
我在 WordPress 插件中遇到了这个问题。
$stuff = $wpdb->get_results(" assume valid database query here ");
foreach ($stuff as $cur)
${$cur->type}[] = $cur->name;
$stuff 将是一个包含更多数据库行对象的对象。这些数据库行将包含'id'、'type' 和'name' 列。 'type' 列将包含以下三个字符串之一:'file'、'url' 或 'code'。
看起来这段代码 sn-p 可能会创建或添加新元素到名为 $file、$url 和/或 $code 的数组中。但是,我不熟悉 ${$ } 语法的这种用法。我只在双引号字符串中看到它以避免解析问题。
我对这段代码的分析是否正确?在哪里可以了解有关 ${$ } 语法的这种用法的更多信息?
双引号字符串中有一个question about the ${ } syntax。我理解这种用法,但我特意询问 { } 大括号内的第二个 $ 字符。
【问题讨论】:
-
{$cur->type}强制此位首先解析,确保$$cur不是意思,$cur->type[]也不是。如果您想了解更多有关整体方法的信息,请查看variable variables - 这是一种编写变量名称本身可能会更改的表达式的方法。 -
@j08691:那个副本实际上是关于不同的东西。不完全不同,但不是这里的情况。
-
@Ben - 如果这个问题作为 j08691 提出的项目的副本而关闭,请联系我,我会投票重新开放。这提到了
{},但没有提到$$。 -
@halfer,它被标记为重复。我有我的答案,但如果你想重新打开,请随意。这不是那个问题的重复。如果有的话,它是 this one 的副本。