2011-11-11 62 views
4

現在是時候停止搜索一個問題。我無法在線爲我的生活找到答案。無論如何,我正在通過別人的代碼,他們有一個循環內的語法,我不知道到底發生了什麼。

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

這是我不明白的$ {$ key}。

回答

1

它將數組中的所有鍵 - 值對分配給實際變量。

${$key}被評估兩次。它將$key作爲該值並將其評估爲字符串。因此,如果$key是字符串'foo',那麼最後的操作將是$foo = $val

4

這被稱爲variable variables。在你的循環中,代碼將把名稱爲$key的變量設置爲值$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'