4

WordPressプラグイン内でこれに出くわしました。

$stuff = $wpdb->get_results(" assume valid database query here ");
foreach ($stuff as $cur)
    ${$cur->type}[] = $cur->name;

$stuffデータベース行のオブジェクトをさらに含むオブジェクトになります。これらのデータベース行には、列'id''type'、およびが含まれ'name'ます。列には、 、、または'type'の 3 つの文字列のいずれかが含まれます。'file''url''code'

このコード スニペットは、 、 、および/または という名前の配列に新しい要素を作成または追加する可能性がある$fileよう$urlです$code。ただし、この ${$ } 構文の使用法には慣れていません。解析の問題を避けるために、二重引用符で囲まれた文字列内でのみ見ました。

このコードの分析は正しいですか? ${$ } 構文のこの使用法について、どこで詳しく知ることができますか?

二重引用符で囲まれた文字列内の ${ } 構文について質問があります。その使用法は理解していますが、具体的には { } 中括弧内の 2 番目の $ 文字について質問しています。

4

3 に答える 3

2

これらの中かっこは、変数名として使用される文字列への式を評価する文字列コンテキストを開きます。

たとえば、通常の PHP では書ききれない名前の変数を書きたい場合は、次のようにします。

echo $;

名前が空の変数。PHP では構文エラーが発生します。ただし、中括弧を使用してそのような変数を作成できます。

${''} = 'hello';
echo ${''}; # prints "hello"

これは名前が空の変数です。これは、最初に変数名を評価する場合に役立ちます。

${$cur->type}[]
| ### 1. ###|
`---- 2. ---´

これにより、配列がどこにあるかを明確に伝えることができます。によって名前が付けられた変数で$cur->type

私はおそらくそれを本当にうまく説明することはできません.これは私が覚えているブログ投稿です.

于 2013-08-21T20:28:02.053 に答える