在 PHP 中,${$} 语法有什么作用?

Ben*_*ica 5 php syntax

我在 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。但是,我不熟悉 ${$ } 语法的这种用法;我只在双引号字符串中看到它,以避免解析问题。

我对这段代码的分析正确吗?在哪里可以了解有关 ${$ } 语法的更多信息?

关于双引号字符串内的${ } 语法存在问题。我理解这种用法​​,但我特别询问 { } 大括号内的第二个 $ 字符。

Zso*_*gyi 4

考虑

\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