現在是時候停止搜索一個問題。我無法在線爲我的生活找到答案。無論如何,我正在通過別人的代碼,他們有一個循環內的語法,我不知道到底發生了什麼。
foreach($params as $key => $val) {
${$key} = $val
}
這是我不明白的$ {$ key}。
現在是時候停止搜索一個問題。我無法在線爲我的生活找到答案。無論如何,我正在通過別人的代碼,他們有一個循環內的語法,我不知道到底發生了什麼。
foreach($params as $key => $val) {
${$key} = $val
}
這是我不明白的$ {$ key}。
它將數組中的所有鍵 - 值對分配給實際變量。
${$key}
被評估兩次。它將$key
作爲該值並將其評估爲字符串。因此,如果$key
是字符串'foo',那麼最後的操作將是$foo = $val
。
這被稱爲variable variables。在你的循環中,代碼將把名稱爲$key
的變量設置爲值$val
。
該循環可以替換爲extract()
。
這被稱爲變量變量http://php.net/manual/en/language.variables.variable.php。 如果$key = 'test'
,那麼${$key} === $test.
所以結果將是$test = $val
。
這基本上做什麼extract()
做:
$params = array('a' => 'foo', 'b' => 'bar');
foreach($params as $key => $val) {
${$key} = $val
}
echo $a; // outputs 'foo'
echo $b; // outputs 'bar'
+1爲手動鏈接 – megaflop