PHP匿名函数和use子句用法实例


Posted in PHP onMarch 16, 2016

本文实例讲述了PHP匿名函数和use子句用法。分享给大家供大家参考,具体如下:

下面方法输出的是hello world

$param1和$param2是闭包变量

function test()
{
  $param2 = 'every';
  // 返回一个匿名函数
  return function ($param1) use ($param2) {
    // use子句 让匿名函数使用其作用域的变量
    $param2 .= 'one';
    print $param1 . ' ' . $param2;
  };
}
$anonymous_func = test();
$anonymous_func('hello');

下面的方式 输出hello everyone

function test()
{
  $param2 = 'everyone';
  $func = function ($param1) use ($param2) {
    // use子句 让匿名函数使用其父作用域的变量
    print $param1 . ' ' . $param2;
  };
  $param2 = 'everybody';
  return $func;
}
$anonymous_func = test();
$anonymous_func('hello');

下面的方式 输出hello everybody

$param2中多了一个引用

function test()
{
  $param2 = 'everyone';
  $func = function ($param1) use (&$param2) {
    // use子句 让匿名函数使用其父作用域的变量
    print $param1 . ' ' . $param2;
  };
  $param2 = 'everybody';
  return $func;
}
$anonymous_func = test();
$anonymous_func('hello');

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
php微信开发之关注事件
Jun 14 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
PHP哈希表实现算法原理解析
Dec 11 PHP
PHP Static延迟静态绑定用法分析
Mar 16 #PHP
PHP5.5迭代生成器用法实例详解
Mar 16 #PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 #PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 #PHP
Laravel中Trait的用法实例详解
Mar 16 #PHP
Laravel中注册Facades的步骤详解
Mar 16 #PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 #PHP
You might like
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php读取csv文件并输出的方法
2015/03/14 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
shiro授权的实现原理
2017/09/21 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
谈谈如何手动释放Python的内存
2016/12/17 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python 异或加密字符串的实例
2018/10/14 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
日期和时间问题
2015/01/04 面试题
启动仪式策划方案
2014/06/14 职场文书
秋菊打官司观后感
2015/06/03 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers