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系统流量分析的程序
Oct 09 PHP
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
php 购物车实例(申精)
May 11 PHP
UCenter Home二次开发指南
May 28 PHP
PHP学习 变量使用总结
Mar 24 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
laravel5.6实现数值转换
Oct 23 PHP
PHP实现本地图片转base64格式并上传
May 29 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
加速XP搜索功能堪比vista
2007/03/22 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
python实现的解析crontab配置文件代码
2014/06/30 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python基于WordCloud制作词云图
2019/11/29 Python
Python 列表的清空方式
2020/01/13 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
产品工艺师的岗位职责
2013/11/15 职场文书
事务机电主管工作职责
2014/02/25 职场文书
对公司合理化的建议书
2014/03/12 职场文书
个人贷款担保书
2014/04/01 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
工作检讨书500字
2014/10/19 职场文书
七年级上册生物的课件
2019/08/07 职场文书
浅析Python中的套接字编程
2021/06/22 Python