【发布时间】:2011-11-04 22:57:49
【问题描述】:
在 PHP 中可以动态创建变量
$myarr = array('name'=>'Adam', 'age'=>22, 'sex'=>'male');
foreach ($myarr as $k=>$v)
$$k = $v;
有没有办法将回调functionX和arrayX传递给另一个functionY,从functionY中的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}.";
});
我不想将变量传递回回调函数,因为我可能不知道数组中的长度或键,并且我不想用未知变量名污染全局范围,因为它们是动态创建。
有没有办法做到这一点?关闭?
谢谢
【问题讨论】:
标签: php callback scope closures