PHP闭包定义与使用简单示例


Posted in PHP onApril 13, 2018

本文实例讲述了PHP闭包定义与使用。分享给大家供大家参考,具体如下:

<?php
function getClosure($i)
{
  $i = $i.'-'.date('H:i:s');
  return function ($param) use ($i) {
    echo "--- param: $param ---\n";
    echo "--- i: $i ---\n";
  };
}
$c = getClosure(123);
$i = 456;
$c('test');
sleep(3);
$c2 = getClosure(123);
$c2('test');
$c('test');
/*
output:
--- param: test ---
--- i: 123-21:36:52 ---
--- param: test ---
--- i: 123-21:36:55 ---
--- param: test ---
--- i: 123-21:36:52 ---
*/

再来一个实例

$message = 'hello';
$example = function() use ($message){
 var_dump($message);
};
echo $example();
//输出hello
$message = 'world';
//输出hello 因为继承变量的值的时候是函数定义的时候而不是 函数被调用的时候
echo $example();
//重置为hello
$message = 'hello';
//此处传引用
$example = function() use(&$message){
 var_dump($message);
};
echo $example();
//输出hello
$message = 'world';
echo $example();
//此处输出world
//闭包函数也用于正常的传值
$message = 'hello';
$example = function ($data) use ($message){
 return "{$data},{$message}";
};
echo $example('world');
//此处输出world,hello

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

PHP 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
用PHP和ACCESS写聊天室(三)
Oct 09 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
PHP编写RESTful接口
Feb 23 PHP
Laravel中间件实现原理详解
Oct 09 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
stripos函数知识点实例分享
Feb 11 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 #PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 #PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 #PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 #PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 #PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 #PHP
PHP实现的简单组词算法示例
Apr 10 #PHP
You might like
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
php5与php7的区别点总结
2019/10/11 PHP
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python通过poll实现异步IO的方法
2015/06/04 Python
python实现音乐下载器
2018/04/15 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python通过链接抓取网站详解
2019/11/20 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
python numpy实现rolling滚动案例
2020/06/08 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
工商学院毕业生个人自我评价
2013/09/19 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
文艺晚会策划方案
2014/06/11 职场文书
企业员工集体活动方案
2014/08/17 职场文书