我有一个数组,我想通过外部变量对其进行过滤。 情况如下:
$id = '1';
var_dump($id);
$foo = array_filter($bar, function($obj){
if (isset($obj->foo)) {
var_dump($id);
if ($obj->foo == $id) return true;
}
return false;
});
第一个 var_dump
返回 ID(当然是动态设置的),但是第二个 var_dump
返回 NULL。
谁能告诉我原因,以及如何解决?
最佳答案
变量 $id
不在函数范围内。您需要使用 use
子句使外部变量可访问:
$foo = array_filter($bar, function($obj) use ($id) {
if (isset($obj->foo)) {
var_dump($id);
if ($obj->foo == $id) return true;
}
return false;
});
关于php - 在 array_filter 中使用外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25994266/