手机
当前位置:查字典教程网 >编程开发 >php教程 >php基于闭包实现函数的自调用(递归)实例分析
php基于闭包实现函数的自调用(递归)实例分析
摘要:本文实例讲述了php基于闭包实现函数的自调用(递归)的方法。分享给大家供大家参考,具体如下:php的闭包可能不常用,但是在某些场合之下还是可...

本文实例讲述了php基于闭包实现函数的自调用(递归)的方法。分享给大家供大家参考,具体如下:

php的闭包可能不常用,但是在某些场合之下还是可以考虑用php的闭包来实现某些功能的,比如递归,这里讲一下用php的闭包实现递归

//php闭包实现函数的自调用,也就是实现递归 function closure($n,$counter,$max){ //匿名函数,这里函数的参数加&符号是,引址调用参数自己 $fn = function (&$n,&$counter,&$max=1) use(&$fn){//use参数传递的是函数闭包函数自身 $n++; if($n < $max){//递归点,也就是递归的条件 $counter .=$n.'<br />'; //递归调用自己 $fn($n,$counter,$max); } return $counter; };//记得这里必须加``;``分号,不加分号php会报错,闭包函数 /* *这里函数closure的返回值就是调用闭包的匿名函数 *而闭包函数,引用closure函数传进来的参数 */ return $fn($n,$counter,$max); } echo (closure(0,'',10));

这是一个简单的使用php闭包实现递归的函数,其实,假如我们对这个函数稍微修改一下,是可以实现很多功能的,比如说,无限极分类。

关于里面的闭包函数,其实,我们也可以不用引用外面的closure参数,里面的闭包函数的参数,我们可以在closure的内部设置。

我们也可以不用返回闭包函数的值,因为闭包函数是在closure函数里面,我们可以在closure里面设置一下变量传递给闭包函数,然后,用闭包递归获取我们想要的东西存储在数组中,再利用closure函数返回闭包函数获取的东西,所以,闭包函数也可以没有返回值的,关键是你要获取什么东西。

总之,你只要利用这个闭包函数实现你要的东西,然后返回你需要的东西即可,不一定非要从闭包函数的返回值中获取。

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

【php基于闭包实现函数的自调用(递归)实例分析】相关文章:

php中get_defined_constants函数用法实例分析

GD输出汉字的函数的分析

php结合安卓客户端实现查询交互实例

php使用GD实现颜色渐变实例

PHP基于MySQL数据库实现对象持久层的方法

php中PDO方式实现数据库的增删改查

php实现的mongodb操作类实例

php实现求相对时间函数

php中smarty实现多模版网站的方法

php函数重载的替代方法

精品推荐
分类导航