从一个作用域级别导入PHP变量
我想从一个作用域级别导入PHP变量,php,Php,我想array\u filter函数中的数组: function filter($array, $check){ return array_filter($array,function($val){return $val==$check;}); } 注意:这是一个简化的场景 这不起作用,因为过滤器函数中没有定义$check,但我不能使用全局$check两者都不是,因为它无法从一级以上导入变量。我也不能把它当作论点 任何解决方法?您可以使用use关键字: function filter(
array\u filter
函数中的数组:
function filter($array, $check){
return array_filter($array,function($val){return $val==$check;});
}
注意:这是一个简化的场景
这不起作用,因为过滤器函数中没有定义
$check
,但我不能使用全局$check代码>两者都不是,因为它无法从一级以上导入变量。我也不能把它当作论点
任何解决方法?您可以使用use
关键字:
function filter($array, $check = $check_global){
return array_filter($array,function($val){return $val == $check;});
}
function filter($array, $check) {
return array_filter($array, function($value) use ($check) {
return ($value == $check);
});
}
当您希望将外部变量引入正常函数时,它与使用global
关键字基本相同。您需要使用use
关键字而不是global
的原因与工作方式有关。简言之,它们被转换为。“我也不能将其作为参数传递”的对象。为什么???因为过滤器函数是由数组_filter
内部调用的,而不是脚本本身。将其声明为全局。此外,您还可以将其作为arg@Hiroto如何将其作为arg传递?与我的一样有效,但更有趣。