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 xml文件操作代码(一)
Mar 20 PHP
关于页面优化和伪静态
Oct 11 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP中is_dir()函数使用指南
May 08 PHP
PHP中使用curl入门教程
Jul 02 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
php mysql 封装类实例代码
Sep 18 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP实现添加购物车功能
Mar 06 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 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
文件系统基本操作类
2006/11/23 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
Javascript继承机制详解
2017/05/30 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
什么是类的返射机制
2016/02/06 面试题
2014年母亲节演讲稿范文
2014/05/07 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
鸡毛信观后感
2015/06/11 职场文书