3

私が次のものを持っているとしましょう:

$foo = "bar";
$bar = "hello";

次に、文字列「hello」を次のいずれかの方法で標準出力にエコーできます。

echo $$foo;

また

echo ${$foo};

一般的に、これら2つのステートメントの違いは何でしょうか。つまり、上に表示されている2番目の構文で評価された変数名を中括弧で囲む目的は何ですか?

4

2 に答える 2

8

$ {$ foo}を使用する唯一の理由は、$ fooを他の何かに組み合わせることができるようにするためです。たとえば、次のようになります。

$idx = 4;
$bar3 = 20;
$bar4 = 7;
echo ${$foo.$idx}

$ idxは4の価値があるため、これは$bar4の値を返します。

于 2012-07-10T17:56:34.613 に答える
3

あなたの例で彼らがすることにおいて、2つの間に違いはありません。

最初の例は変数変数として知られている概念ですが、2番目の中括弧の例では、指定された値に基づいて動的変数を生成できます。

チェックアウトすることもできます。

于 2012-07-10T17:57:03.660 に答える