PHP匿名函数如何访问外部变量?
function test(){
$num = 2;
$array = array(1,2,3,4,5,6,7,8);
print_r(array_filter($array, function($param) {
return $param % intval($GLOBALS['num']) ==0; //这里访问不到$num变量
}));
}
test();
如何才能访问到$num?
如果把$num放到function外部,是可以用$GLOBALS访问到的。
直接把num当成输入参数传给匿名函数得了 你显然没有认真看手册。
$var = 1;
$lambda = function($param) use($var) {
echo $var;
}
http://php.net/manual/en/functions.anonymous.php
特别注意:
5.3.x不支持在匿名函数里面直接引用 $this,只能先传递给句柄然后应用。5.4修正了这个bug。
// for 5.3
$var = 1;
$self = & $this;
$lambda = function($param) use($self) {
// your code here
}
PHP
$var = 1;
$lambda = function($param) use($var) {
echo $var;
}
复制代码
这个不懂怎么用
页:
[1]