加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP array_filter中的未定义变量[复制]

发布时间:2020-12-13 22:19:28 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 Accessing outside variable using anonymous function as params????????????????????????????????????2个 这可能是一个非常愚蠢的问题,但我无法理解PHP范围如何处理这段代码: $leagueKey = 'NFL';$response['response'] = array_filter($res
参见英文答案 > Accessing outside variable using anonymous function as params????????????????????????????????????2个
这可能是一个非常愚蠢的问题,但我无法理解PHP范围如何处理这段代码:

$leagueKey = 'NFL';
$response['response'] = array_filter($response['response'],function($tier){
    return ($tier['LeagueKey'] === $leagueKey ? true : false);
});

当我运行它时,我得到一个“Undefined variable:leagueKey”异常.另一方面,这非常有效:

$response['response'] = array_filter($response['response'],function($tier){
    return ($tier['LeagueKey'] === 'NFL' ? true : false);
});

为什么PHP不能在array_filter函数中看到我的$leagueKey变量?

谢谢!

解决方法

你的$leagueKey变量超出了匿名函数(闭包)的范围.幸运的是,PHP提供了一种将变量放入范围的非常简单的方法 – use关键字.尝试:

$leagueKey = 'NFL';
$response['response'] = array_filter($response['response'],function($tier) use ($leagueKey) {
    return $tier['LeagueKey'] === $leagueKey;
});

这只是告诉你的匿名函数“使用”当前范围内的$leagueKey变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读