当前位置 : 主页 > 网络编程 > PHP >

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

来源:互联网 收集:自由互联 发布时间:2021-06-11
今天实现上传文件和指定路径下文件进行对比时,用到了这个array_map方法,传入的回调函数里面执行array_splice()方法时,却报错第一个参数不是一个数组,给定的null。 起初在array_map回调

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

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

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

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

         

网友评论