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编程语言开发动态WAP页面
Oct 09 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
PHP的5个安全措施小结
Jul 17 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
js jquery做的图片连续滚动代码
2008/01/06 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
印尼旅游网站:via
2017/11/12 全球购物
房地产营销策划方案
2014/02/08 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
超强台风观后感
2015/06/09 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers