Home >Backend Development >PHP Tutorial >"圣经"递归问题的困惑 想了一天555也无解...
<?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; }?>
return;是返回的意思,也就这函数的程序不再往下面跑了,函数不需要返回值,所以就不加了!
那只能输出o?
为什么会输出hello呢有谁能帮我分析分析
你直接加我qq吧,
643461761
$str='hello';var_dump(reverse_i($str)); //看看返回了什么function reverse_i($str){ echo $str, PHP_EOL; //看看传入了什么 if(strlen($str)>0) { reverse_i(substr($str,1)); } echo substr($str,0,1); return;}hello
$str='hello';var_dump(reverse_i($str)); //看看返回了什么function reverse_i($str){ echo $str, PHP_EOL; //看看传入了什么 if(strlen($str)>0) { reverse_i(substr($str,1)); } echo substr($str,0,1); return;}hello
if(strlen($str)>0)
{
reverse_i(substr($str,1)); //这是一次递归调用
}
echo substr($str,0,1);
return;
在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?
在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?
在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?