标签: 匿名函数

  • PHP匿名函数使用父作用域的变量

    PHP匿名函数使用父作用域的变量

    (自古图文不相关)

    同事问为什么要用 array_maparray_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)


    参考: