PHP匿名函数使用父作用域的变量
(自古图文不相关)
同事问为什么要用 array_map,array_filter之类的函数,用 foreach 不就好了?
答:这样写出来的代码语义更清晰,阅读更容易。
那么如何使用其它变量呢?global 么?
答:global 肯定不合适,不过怎么写我也不知道。待我查查。
在PHP中,不能像JS那样直接使用闭包里的其它变量,必须通过声明继承的语法,写出来是这样的:
<?php
$arr = [1, 2, 3];
$split = 2; // 分界
$arr = array_map(function ($value) use ($split) {
return $value < $split ? 0 : $value;
}, $arr);
var_dump($arr);
// 输出
// 0, 2, 3
重点是那个 use ($split)。
参考:
相关文章
记一次 TiDB Cloud Serverless 超额导致的博客超时故障
今天早上起来,习惯性地刷新博客统计页面,发现 502。这可不妙,好不容易我坚持到现在终于有点流量,于是赶紧想办 […]
2023-06-177 分钟
代友招聘:广州番禺广告公司招 PHP 工程师
做 ocpx 和 rta 方面的。dsp 平台 adx 方便的接口对接。 (上面这一行我完全看不懂……) 岗位 […]
2021-09-202 分钟
PHP 8.0 发布——JIT 到来,性能大幅提升,一堆语法糖
早上起来,得知 PHP 8 正式发布了,作为曾经的半个 PHP 程序员,当然要去看一看。官方的 Release […]
2020-11-273 分钟


