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 相关文章推荐
PHP4之真OO
Oct 09 PHP
十天学会php(2)
Oct 09 PHP
php Http_Template_IT类库进行模板替换
Mar 19 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
PHP rsa加密解密算法原理解析
Dec 09 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 XML备份Mysql数据库
2009/05/27 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
python数据结构之列表和元组的详解
2017/09/23 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
python爬虫请求头设置代码
2020/07/28 Python
序列化Python对象的方法
2020/08/01 Python
python 模拟登陆github的示例
2020/12/04 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
三星美国官网:Samsung美国
2017/02/06 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
计算机专业优秀大学生自我总结
2014/01/21 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Golang gRPC HTTP协议转换示例
2022/06/16 Golang