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延迟静态绑定示例分享
Jun 22 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php实现httpRequest的方法
Mar 13 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
Yii2框架redis基本应用示例
Jul 13 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 email邮箱正则
2008/10/08 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
matplotlib简介,安装和简单实例代码
2017/12/26 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Python 如何查找特定类型文件
2020/08/17 Python
有原因的手表:Flex Watches
2019/03/23 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
请客吃饭开场白
2015/06/01 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
python中opencv实现图片文本倾斜校正
2021/06/11 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript