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模板引擎SMARTY
Oct 09 PHP
浅谈PHP语法(1)
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
php使用codebase生成随机数
Mar 25 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
php阳历转农历优化版
Aug 08 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 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
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
2019/01/22 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python中print和return的作用及区别解析
2019/05/05 Python
基于python实现百度翻译功能
2019/05/09 Python
Python列表对象实现原理详解
2019/07/01 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python 弧度与角度互转实例
2020/04/15 Python
什么是python类属性
2020/06/10 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
军训自我鉴定怎么写
2014/02/13 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
党员创先争优承诺书
2014/03/26 职场文书
高中班级口号
2014/06/09 职场文书
应届毕业生自荐书
2014/06/18 职场文书
全运会口号
2014/06/20 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
上课说话检讨书
2015/01/27 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Python 数据可视化之Seaborn详解
2021/11/02 Python