我在变量范围方面遇到困难。我有一个从多维数组中查找实验值的函数。我想将该功能传递给实验室的名称并让它查找。然而,我传递给get_lab函数的$实验室无法访问array_filter中使用的第二个函数。我的范围在哪里出错?
function get_lab($lab){
$result = array_filter($labs_array, function($v) {
return $v[1] == $lab;
});
print_r($result);
}
答案 0 :(得分:3)
您应该在use
子句中声明变量,如此
function get_lab($lab){
$result = array_filter($labs_array, function($v) use ($lab) {
return $v[1] == $lab;
});
print_r($result);
}
的手册
答案 1 :(得分:2)
你需要将$ lab传递给内部函数..
一种方法是使用use关键字
function get_lab($lab){
$lab = $lab;
$result = array_filter($labs_array, function($v) use ($lab) {
return $v[1] == $lab;
});
print_r($result);
}