我在变量作用域方面遇到困难。 我有一个从多维数组中查找实验室值的函数。 我想向函数传递实验室的名称并让它查找它。 但是,我传递给get_lab函数的$lab无法访问array_filter中使用的第二个函数。 范围哪里出错了?
function get_lab($lab){
$result = array_filter($labs_array, function($v) {
return $v[1] == $lab;
});
print_r($result);
}
你应该像这样在use
子句中声明变量
function get_lab($lab){
$result = array_filter($labs_array, function($v) use ($lab) {
return $v[1] == $lab;
});
print_r($result);
}
查看手册中的匿名函数
你需要将$lab传递给内部函数。
一种方法是使用 use 关键字
function get_lab($lab){
$lab = $lab;
$result = array_filter($labs_array, function($v) use ($lab) {
return $v[1] == $lab;
});
print_r($result);
}