日期:2014-05-17  浏览次数:20553 次

"圣经"递归问题的困惑 想了一天555也无解...
本帖最后由 iamsai 于 2013-09-24 21:00:08 编辑
<?php

$str='hello';
reverse_i($str);
function reverse_i($str)
{
if(strlen($str)>0)
{   
reverse_i(substr($str,1));

                }

echo substr($str,0,1);
return;

}
?>


请大家看我的问题:
此程序的输出结果是倒序输出 olleh .
经过循环体中reverse_i(substr($str,1));语句的操作 hello ello llo lo o 
当字符长度==0时,echo substr($str,0,1); 输出o.
return语句返回什么值呢?是返回到第四行?后面的执行顺序是什么呢?有谁能帮我分析分析?谢谢大侠了!

------解决方案--------------------
if(strlen($str)>0)
??{???
????reverse_i(substr($str,1)); //这是一次递归调用
          <--- 返回到这里
??}
??echo?substr($str,0,1);
??return;