PHP匿名函数和use子句用法实例


Posted in PHP onMarch 16, 2016

本文实例讲述了PHP匿名函数和use子句用法。分享给大家供大家参考,具体如下:

下面方法输出的是hello world

$param1和$param2是闭包变量

function test()
{
  $param2 = 'every';
  // 返回一个匿名函数
  return function ($param1) use ($param2) {
    // use子句 让匿名函数使用其作用域的变量
    $param2 .= 'one';
    print $param1 . ' ' . $param2;
  };
}
$anonymous_func = test();
$anonymous_func('hello');

下面的方式 输出hello everyone

function test()
{
  $param2 = 'everyone';
  $func = function ($param1) use ($param2) {
    // use子句 让匿名函数使用其父作用域的变量
    print $param1 . ' ' . $param2;
  };
  $param2 = 'everybody';
  return $func;
}
$anonymous_func = test();
$anonymous_func('hello');

下面的方式 输出hello everybody

$param2中多了一个引用

function test()
{
  $param2 = 'everyone';
  $func = function ($param1) use (&$param2) {
    // use子句 让匿名函数使用其父作用域的变量
    print $param1 . ' ' . $param2;
  };
  $param2 = 'everybody';
  return $func;
}
$anonymous_func = test();
$anonymous_func('hello');

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
利用PHP创建动态图像
Oct 09 PHP
默默小谈PHP&MYSQL分页原理及实现
Jan 02 PHP
php 高效率写法 推荐
Feb 21 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
php cookie工作原理与实例详解
Jul 18 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
PHP Static延迟静态绑定用法分析
Mar 16 #PHP
PHP5.5迭代生成器用法实例详解
Mar 16 #PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 #PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 #PHP
Laravel中Trait的用法实例详解
Mar 16 #PHP
Laravel中注册Facades的步骤详解
Mar 16 #PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 #PHP
You might like
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
python三大神器之fabric使用教程
2019/06/10 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
办公室经理岗位职责
2014/01/01 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
铣工实训报告
2014/11/05 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python