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 相关文章推荐
php中数据的批量导入(csv文件)
Oct 09 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
php实例分享之二维数组排序
2014/05/15 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
python实现绘制树枝简单示例
2014/07/24 Python
Python中Continue语句的用法的举例详解
2015/05/14 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
matplotlib绘制动画代码示例
2018/01/02 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
Python正则表达式如何匹配中文
2020/05/27 Python
python绘制趋势图的示例
2020/09/17 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
绩效专员岗位职责
2013/12/02 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
社区先进事迹材料
2014/05/19 职场文书
停车场管理协议书范本
2014/10/08 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python