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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
PHP Zip解压 文件在线解压缩的函数代码
May 26 PHP
php数字转汉字代码(算法)
Oct 08 PHP
基于PHP生成静态页的实现方法
May 10 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
PHP实现图片压缩的两则实例
Jul 19 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
php采集中国代理服务器网的方法
Jun 16 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
php实现在线考试系统【附源码】
Sep 18 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 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调用Oracle存储过程
2006/10/09 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
php删除数组元素示例分享
2014/02/17 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
js实现蒙版效果
2020/01/11 Javascript
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
详解Python中的type和object
2018/08/15 Python
Python字典的核心底层原理讲解
2019/01/24 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
美术师范毕业生自荐信
2013/11/16 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2015年少先队活动总结
2015/03/25 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书