php 闭包实例解析


本文摘自PHP中文网,作者怪我咯,侵删。

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

匿名函数目前是通过 Closure 类来实现的。

闭包函数也可以作为变量的值来使用。PHP 会自动把此种表达式转换成内置类 Closure 的对象实例。把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号:

闭包可以从父作用域中继承变量。 任何此类变量都应该用 use 语言结构传递进去。 PHP 7.1 起,不能传入此类变量: superglobals、 $this 或者和参数重名。

具体形式如下:

1

2

3

$a = function($arg1, $arg2) use ($variable) {

// 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量

}

具体用法实例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

$result = 0;

  

$one = function()

{ var_dump($result); };

  

$two = function() use ($result)

{ var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值

  

$three = function() use (&$result)

{ var_dump($result); };

  

$result++;

  

$one();  // outputs NULL: $result is not in scope

$two();  // outputs int(0): $result was copied

$three();  // outputs int(1)

?>

以上就是php 闭包实例解析的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

PHP+ajax做的分页实例代码

mysql索引基础详解

PHP实现标签云的代码

cookie属性和方法解析

mysql中的join操作实例分享

mysql和相关的timeout详细解析

如何通过PHP实现mysql数据库连接、查询、记录集等操作

mysql中关于触发器的操作实例详解

PHP为什么使用redis

mysql显式类型转换实例分享

更多相关阅读请进入《PHP》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...