私が次のものを持っているとしましょう:
$foo = "bar";
$bar = "hello";
次に、文字列「hello」を次のいずれかの方法で標準出力にエコーできます。
echo $$foo;
また
echo ${$foo};
一般的に、これら2つのステートメントの違いは何でしょうか。つまり、上に表示されている2番目の構文で評価された変数名を中括弧で囲む目的は何ですか?
私が次のものを持っているとしましょう:
$foo = "bar";
$bar = "hello";
次に、文字列「hello」を次のいずれかの方法で標準出力にエコーできます。
echo $$foo;
また
echo ${$foo};
一般的に、これら2つのステートメントの違いは何でしょうか。つまり、上に表示されている2番目の構文で評価された変数名を中括弧で囲む目的は何ですか?
$ {$ foo}を使用する唯一の理由は、$ fooを他の何かに組み合わせることができるようにするためです。たとえば、次のようになります。
$idx = 4;
$bar3 = 20;
$bar4 = 7;
echo ${$foo.$idx}
$ idxは4の価値があるため、これは$bar4の値を返します。