Paradiso 的遮阳伞与躺椅

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)


参考:

如果您觉得文章内容对您有用,不妨支持我创作更多有价值的分享:


已发布

分类

来自

评论

欢迎吐槽,共同进步

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据