私は少し
$hello = "hello";
echo "Say $hello";
echo "Say {$hello}";
echo "Say ${hello}";
と混同だと出力が同じSay hello
です。 {$hello}
と${hello}
はいつ使用しますか?一重引用符では使用できないのはなぜですか?
私は少し
$hello = "hello";
echo "Say $hello";
echo "Say {$hello}";
echo "Say ${hello}";
と混同だと出力が同じSay hello
です。 {$hello}
と${hello}
はいつ使用しますか?一重引用符では使用できないのはなぜですか?
$animal = 'cat';
echo "I have 14 $animals";
これは、このようにあなたは、単一の原因変数/式の中で
echo "I have 14 ${animal}s";
または
echo "I have 14 {$animal}s";
を "エスケープ" し、問題につながる可能性が置換決してました。
一重引用符で囲まれた文字列は、PHPで変数を展開することはありません。参照:
http://php.net/manual/en/language.types.string.php
PHPの文字列フォーマットの詳細については。合計で4つあります(PHP 5.3で導入されたnowdocを含む)。二重引用符とheredoc文字列形式のみが変数を展開します。 http://www.php.net/manual/en/language.types.string.php#language.types.string.parsingによると
、 は、これは単純な構文です:
echo "Say ${hello}";
、これは巻き毛の構文は次のとおりです。
echo "Say {$hello}";
なぜそれら両方の出力と同じでしょうか? PHPでは、必要なあらゆる場所で変数変数を使用することができます。たとえば:
$var = 'somevar';
$bar = 'var';
echo $$bar; // "somevar", simple variable variable
echo ${$bar}; // "somevar", complex syntax
echo ${bar}; // "var", because {bar} treated as a string constant:
// Notice: Use of undefined constant bar - assumed 'bar'
ので、変数の変数を使用して構文${hello}
は単に$hello
に翻訳します。
誰かが行って[これについてのマニュアルを書きました](http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex)。あなたはそれを読みました? –
ありがとうございます@LinusKleen。今私はそれが 'curly'であることを知っている –