博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是php递归函数及简单实例讲解
阅读量:6882 次
发布时间:2019-06-27

本文共 1015 字,大约阅读时间需要 3 分钟。

hot3.png

递归函数即自调用函数,在函数体内部直接或者间接的自己调用自己,即函数的嵌套调用是函数本身。通常在此类型的函数提之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定的条件下终止函数的递归调用动作,把目前流程的主控权交回到上一层函数来执行。以此,当某个执行递归调用的函数没有附加条件判断叙述时,可能会造成无限循环的错误情形。

函数递归调用最大的好处在于可以精简程序中的复杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作。例如,列表、动态树形菜单及遍历目录等操作。相应的非递归函数虽然效率高,但却比较难编程,而且相对来说可读性差。现代程序设计的目标主要是可读性好。随着计算机硬件性能的不断提高,程序在更多的场合优先考虑可读而不是高效,所以,鼓励用递归函数实现程序思想。

一个简单的递归调用实例如下所示:

0){ //判断参数是否大于0 test($n-1); //如果参数大于0则调用自己,并将参数减1后再次传入 }else{ //判断参数是不大于0 echo "<--------> "; } echo $n." "; } test(10); //调用test函数将整数10传给参数?>

该程序执行后输出如下的结果:

1

10 9 8 7 6 5 4 3 2 1 0 <--------> 0 1 2 3 4 5 6 7 8 9 10

找到结果中后半部分的数字正向顺序输出的原因

说明:在上面的实例中声明了一个 test()函数,该函数需要一个整型的参数。在函数外面通过传递整数 10 作为参数调用 test()函数。在 test()函数体中,第一条代码输出参数的值和一个空格。然后判断条件是否成立,成立则调用自己并将参数减 1 再次传入。开始调用时,它是外层调内层,内层调更内一层,直到最内层由于条件不允许必须结束。最内存结束了,输出 <--------> 作为分界符,执行调用之后的代码输出参数的值和空格,它就会回到稍外一层继续执行。稍外一层在结束时,退回到在稍外一层继续执行,层层推出,直到最外层结束。执行完成以后的结果就是我们上面看到的结果。

转载于:https://my.oschina.net/meng527/blog/2051026

你可能感兴趣的文章
搞定岳父大人 感
查看>>
EBS OM发运状态 wsh_delivery_details.RELEASED_STATUS
查看>>
JVM内存管理(二)
查看>>
我的友情链接
查看>>
java每日小算法(4)
查看>>
Service Discovery with Marathon, Mesos-DNS and HAProxy
查看>>
【java】TestBufferStream1
查看>>
centos系统,不进行域名解析,resolv.conf配置文件
查看>>
HashMap的长度为什么要是2的n次方
查看>>
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
查看>>
get_child_tree()
查看>>
使用HanLP增强Elasticsearch分词功能
查看>>
Linux中grep、egrep正则表达式的使用
查看>>
Spring Cloud Eureka
查看>>
关于InputStream类的available()方法
查看>>
Android 设计中常用的设计模式
查看>>
七夕节福利,一套java架构师资源等你拿
查看>>
jQuery基础 - 筛选器
查看>>
shell两行合并成一行
查看>>
Hive-2.1.1安装教程
查看>>