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 xfocus防注入资料
Apr 27 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
详细分析PHP7与PHP5区别
Jun 26 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中在PDO中使用事务(Transaction)
2011/05/14 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
CI框架附属类用法分析
2018/12/26 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
Python显示进度条的方法
2014/09/20 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
django实现用户登陆功能详解
2017/12/11 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
店长助理岗位职责
2013/12/13 职场文书
高中军训感言500字
2014/02/24 职场文书
公司聘任书模板
2014/03/29 职场文书
群众路线领导对照材料
2014/08/23 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
个人年终总结怎么写
2015/03/09 职场文书
民事诉讼代理词
2015/05/25 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python