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变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |