$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 5, 'e' => 6];
foreach ($arr as $key => $value) {
$$key = $value; // 變數變數語法
}
echo $a; // 1
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 5, 'e' => 6];
extract($arr);
echo $a; // 1
| 特性 | foreach + $$key | extract() |
|---|---|---|
| 程式碼行數 | 3-4 行 | 1 行 |
| 衝突處理 | 需自行判斷 | 內建旗標支援 |
| 效能 | 略慢 | 內部優化,較快 |
| 可讀性 | 明確易懂 | 需知函數行為 |
建議:優先使用 extract(),並善用旗標控制覆蓋行為;教學或除錯時用 foreach 邏輯更清晰。