我在 WordPress 插件中遇到了这个。
$stuff = $wpdb->get_results(" assume valid database query here ");
foreach ($stuff as $cur)
${$cur->type}[] = $cur->name;
Run Code Online (Sandbox Code Playgroud)
$stuff
将是一个包含更多数据库行对象的对象。这些数据库行将包含列'id'
、'type'
和'name'
。该'type'
列将包含以下三个字符串之一:'file'
、'url'
或'code'
。
看起来此代码片段可能会创建新元素或将新元素添加到名为$file
、$url
和/或 的数组中$code
。但是,我不熟悉 ${$ } 语法的这种用法;我只在双引号字符串中看到它,以避免解析问题。
我对这段代码的分析正确吗?在哪里可以了解有关 ${$ } 语法的更多信息?
关于双引号字符串内的${ } 语法存在问题。我理解这种用法,但我特别询问 { } 大括号内的第二个 $ 字符。
考虑
\n\n$foo = 42;\n$a = 'foo';\necho $$a; // Prints 42\n
Run Code Online (Sandbox Code Playgroud)\n\n\xc2\xb4s 称为变量变量,因为变量\xc2\xb4s 名称是在运行时确定的。\n但是 $$a[1] 与 ${$a[1]} 相同还是与 {$$ 相同一个}[1]?括号避免了这种歧义,就像处理数学中的运算符优先级时一样。
\n 归档时间: |
|
查看次数: |
1272 次 |
最近记录: |