PHP匿名函数 闭包简单例子分析

访客 阅读:153 2021-09-07 17:54:18 评论:0
本文章主要介绍了PHP匿名函数 闭包简单例子,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

php5.3中增加了匿名函数和闭包的支持。平常都是在javascript中才能使用得到的匿名函数和闭包现在在php5.3中也能使用了。

<?php

/* anonymous function */
$anonymous = function($str){
echo $str;
};

$anonymous("Hello World!/n");
/* end of anonymous function */

/* closure function */
function close($a)
{
return function($b) use($a){
    echo $a.' - '.$b."/n";
};
}


$a = close('a');

$a('b');
$a('c');
/* end of closure function */

?>

在第一段代码中,我们并没有看到熟悉的 fucnction 函数名(){}的函数定义方式,而是类似javascript中函数字面量的定义方式。这就是php中的匿名函数,至于好处嘛,看家网上搜去吧。

在第二段代码中,就是php中的闭包,闭包的概念说起来有点抽,所以我这里就简单的说一下,具 体定义可以去百科或者维基上查看,在第二段代码中,我们调用函数close的时候传给了函数close参数‘a’,按理函数调用完毕之后函数中所使用的变 量都被销毁掉了,但是这里我们后面对close返回的函数的调用中却还能使用close调用时传递的参数‘a’,这就是所谓的闭包了,也就是说函数 close内部的函数被外部引用而且其变量被内部函数引用时,close函数的变量并不会被垃圾收集器销毁,而是继续保存在内存可以被其内部函数继续引 用。好了,这个东西虽然我理解了,不过讲解并不会,这里有一篇讲解javascript闭包的文章,在太平洋电脑网论坛中的,还是讲的蛮清楚的,要了解的 可以好好看看。

Javascript闭包

好了,就写到这里了,有些东西意会不可言传也

来源:http://apps.hi.baidu.com/share/detail/16853841


标签:PHP
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

排行榜
关注我们

一个IT知识分享的公众号