"圣经"递归有关问题的困惑 想了一天555也无解.
圣经递归问题的困惑 想了一天555也无解...本帖最后由 iamsai 于 2013-09-24 21:00:08 编辑?php$strhe
"圣经"递归问题的困惑 想了一天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;