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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
消息持续发送的完整例子
Oct 09 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Laravel框架路由管理简单示例
May 07 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
Apr 01 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
基于mysql的bbs设计(四)
2006/10/09 PHP
php中变量及部分适用方法
2008/03/27 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
python的Template使用指南
2014/09/11 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
幼儿园教师培训方案
2014/02/04 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
平安工地建设方案
2014/05/06 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书