2017-09-12 6 views
1
私が誤ってテストし

この今日、誰も私に説明することができますか?

$a = array(
array(
'download' => '1500k' 
) 
); 

echo "Test-{$a[0]['download']}"; 

出力:TEST-1500K

+3

それは[コンプレックス(カーリー)構文](http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex)です。二重引用符の中に中括弧を使用すると、PHPはそれらの中括弧内の文字列全体を変数に評価し、その結果を出力します。私の最初の子は{$ this-> child(0) - > firstName} ";' – Luke

+0

のようなもっと複雑な変数を含めることができます@Luke:D –

答えて

1

二重引用符は文字列を式として評価し、変数を抽出してその値を代入します。一重引用符はと同様にです。

もっと詳しく知りたい方はthisの回答をご覧ください。二重引用符で囲まれた文字列の文脈では

+0

おかげで...私をたくさん助けます:Dこのため –

0

あなたコード:

echo "Test-{$a[0]['download']}"; 

と同じである。

echo "Test-".$a[0]['download']; 

{} \だけ入れて列に配列項目$a[0]['download']をラップそこにその値

+0

Oh i c ...おかげで多くの情報のため:) ...コードがどのように動作するかわからない、それは本当にバグ私を...:Dの説明とリンクについて –

0

、変数は単に名前で挿入することができますが、これは配列の値を挿入するために動作しませんので、中括弧は、PHPは、全体として、配列の値があることを知らせるために必要とされています文字列に挿入する。

あなたの例では、中括弧を削除すると、エラーが発生することがわかります。PHPは[0] ['download']部分が単なる文字列ではないことを知る方法がないためです。それは文字列変換エラーに配列をスローします。

中括弧が必要である理由だからです。

+0

ありがとう: ) –

関連する問題