PHP递归加法为何输出“85”而非“8”?
作者:WeekendFlower
时间:2025-06-27
来源:正软商城
浏览:2
PHP函数递归调用详解:剖析一个加法函数的意外输出本文将深入探讨一个PHP函数自身调用的例子,分析其运行机...
本文目录

PHP递归函数详解:剖析加法函数的意外输出
本文分析一个PHP递归函数的示例,解释其输出结果与预期不符的原因。代码如下:
该函数sd()接受两个参数a和b,默认值分别为3和2。函数计算a和b的和,赋值给c。如果c小于6,则递归调用自身,并将a和新的c值作为参数传递。最后,函数打印c的值。
执行sd()后,输出结果为“85”,而非预期的“8”。这是因为对递归调用和echo语句执行顺序的理解存在偏差。
程序执行流程如下:
- 初次调用
sd(),a=3,b=2,c = 3 + 2 = 5。由于c < 6,函数递归调用自身,参数变为sd(3, 5)。 - 递归调用中,
a=3,b=5,c = 3 + 5 = 8。此时c >= 6,递归结束。echo $c;打印8。 - 程序返回到第一次调用
sd()的位置。echo $c;打印第一次调用时的c值,也就是5。
因此,最终输出为“85”。并非变量c未被覆盖,而是echo语句位于函数末尾,每次递归结束都会执行,导致两次打印。
要得到结果“8”,需修改函数逻辑,例如将echo语句放在if条件语句内,或仅在递归结束时打印最终结果。 修改后的代码可以如下:
这个修改后的版本使用return语句返回c的值,确保只在递归结束后打印最终结果。
作者最新文章
再漫画官网首页入口及在线观看方法
2026-11-05 09:42
ArchiveofOurOwn官网链接及同人文学阅读入口
2026-10-30 10:21
多张照片怎么合成PDF文件?三种图片转PDF工具怎么选?
2026-10-29 15:06
音述AI作品如何复制分享链接发给好友
2026-10-27 12:00
冰点还原怎么打开 程序启动步骤
2026-10-23 13:35
热门文章
更多
精品专题
更多
Mac软件
更多
火山引擎 网页版
Windows/ macOS/ Linux
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















