1
在PHP中,你可以創建動態變量PHP回調動態變量的作用域訪問
$myarr = array('name'=>'Adam', 'age'=>22, 'sex'=>'male');
foreach ($myarr as $k=>$v)
$$k = $v;
是有辦法回調functionX和arrayX傳遞給另一個函數y,動態的函數y創建arrayX變量,並能在functionX回調中引用這些變量?
例如,我想:
function eachRecord($arr, $callback){
foreach ($arr as $k=>$v) $$k = $v;
$callback();
}
$myarr = array('name'=>'Adam', 'age'=>22, 'sex'=>'male');
eachRecord($myarr, function(){
echo "{$name} is a {$sex} of age {$age}.";
});
我不希望有傳遞變量回到回調函數,因爲我可能不知道在陣列內的長度或鍵,和我不想污染具有未知變量名稱的全局範圍,因爲它們是動態創建的。
有沒有辦法做到這一點?關閉?
謝謝
作者golly ...我在空閒時間使用了PHP多年,仍然不斷地找到我從未接觸過的函數...... – quietchaos
我做了4年的php,並且剛剛發現了提取函數a幾周後也是如此,所以你並不孤單:) –
它也將是很好的有塊範圍,所以我可以做到這一點,而不必包裝它在一個函數。否則,這些變量在for/foreach循環之外是可用的。 – quietchaos