(自古图文不相关)
同事问为什么要用 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)
。
参考:
欢迎吐槽,共同进步