php中数组方法-array_map的作用域问题

  今天实现上传文件和指定路径下文件进行对比时,用到了这个array_map方法,传入的回调函数里面执行 array_splice()方法时,却报错第一个参数不是一个数组,给定的null。

  起初在array_map回调 外打印 传入到array_splice中的数组,却发现类型正确是数组并且有值,苦恼了好半天,尝试解决无果后,想到在array_map中打印一下这第一个参数,果然是null!

  查阅资料得到array_map回调存在一个内部作用域,无法取得作用域外部的数据。也就是没有‘闭包’【子函数内部可以取到父函数的数据】这一概念!

  解决办法:使用 use()关键字, 括号内可以填入想要访问的变量,多个用逗号隔开。【use 从同一个 namespace 中导入类、函数和常量:】

         

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...