• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php基于闭包实现函数的自调用(递归)实例分析

php 搞代码 3年前 (2022-01-22) 18次浏览 已收录 0个评论

本文实例讲述了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(、本文来源gao@!dai!ma.com搞$$代^@码网*搞gaodaima代码函数返回闭包函数获取的东西,所以,闭包函数也可以没有返回值的,关键是你要获取什么东西。

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

以上就是php基于闭包实现函数的自调用(递归)实例分析 的内容,更多相关内容请随时关注我们网站!

<!—ecms

–>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php基于闭包实现函数的自调用(递归)实例分析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址