2011-11-11 12 views
4

ちょうど尋ねるのを止める時間です。私は私の人生のためにオンラインで答えを見つけることができません。とにかく、私は他の誰かのコードを使っています。ループ内にこの構文があり、何が起こっているのか正確にはわかりません。

foreach($params as $key => $val) { 
    ${$key} = $val 
} 

これは私が理解できない$ {$ key}です。

答えて

1

これは、配列内のすべてのキーと値のペアを実際の変数に割り当てています。

${$key}は2回評価されます。その値には$keyが使用され、それを文字列に評価します。したがって、$keyが文字列 'foo'だった場合、最終的な操作は$foo = $valになります。

4

これはvariable variablesと呼ばれます。ループでは、コードはという名前の変数を$valに設定します。

ループをextract()に置き換えることができました。

3

これは本質的にextract()が何を行います。マニュアルのリンクについて

$params = array('a' => 'foo', 'b' => 'bar'); 

foreach($params as $key => $val) { 
    ${$key} = $val 
} 

echo $a; // outputs 'foo' 
echo $b; // outputs 'bar' 
関連する問題