我在一个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’.
看起来这段代码片段可能会为名为$file,$url和/或$code的数组创建或添加新元素.但是,我不熟悉${$}语法的这种用法;我只在双引号字符串中看到它以避免解析问题.
我对此代码的分析是否正确?我在哪里可以了解有关${$}语法的使用的更多信息?
双引号字符串中有一个question about the ${ } syntax.我理解使用,但我特别询问{}括号内的第二个$字符.
解决方法:
考虑
$foo = 42;
$a = 'foo';
echo $$a; // Prints 42
这称为变量变量,因为变量的名称是在运行时确定的.
但是$$a [1]和${$a [1]}相同或者与{$$a} [1]相同?括号避免了这种歧义,就像在数学中处理运算符优先级时一样.
标签:php,syntax
来源: https://codeday.me/bug/20190723/1508820.html