PhP中的匿名函数与use

来源:互联网 发布:算命软件哪个最准最全 编辑:程序博客网 时间:2024/06/06 02:39

最近再做一个有关于考试系统的项目,是检验一个自己的php基础,属于一个比较简单的项目吧,但是却遇到了诸多困难呀!

废话不多说,直接上干货:什么是PHP匿名函数?    看官方解释:
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

下面是一个匿名函数的实例:

<?phpheader("content-type:text/html;charset=utf-8");//下面我们写一个匿名函数$func=function($data){for($i=0;$i<$data;$i++){echo $i."<br/>";}};//调用匿名函数$func(100);?>
结果是从0到$data-1

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

use: use子句 让匿名函数使用其作用域的变量


下面是几个小例子,帮助我们去理解:

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

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

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

自己动手写一下,注意观察运行结果哦

原创粉丝点击