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 相关文章推荐
漂亮但不安全的CTB
Oct 09 PHP
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
多个PHP中文字符串截取函数
Nov 12 PHP
PHP回溯法解决0-1背包问题实例分析
Mar 23 PHP
PHP开发Apache服务器配置
Jul 15 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
php mysql 封装类实例代码
Sep 18 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
php+redis消息队列实现抢购功能
Feb 08 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
php接口实现拖拽排序功能
2018/04/23 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
javascript常用方法汇总
2014/12/02 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
护士专业推荐信
2013/11/02 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
MySQL优化及索引解析
2022/03/17 MySQL
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android