这个递归是如何运算的
<?php
$string = 'abc';
reverse($string);
function reverse($str){
if(strlen($str)>0){
reverse(substr($str,1));
}
echo substr($str,0,1);
return;
}
?>
这是将abc顺序颠倒显示cba的递归函数。函数执行时每一步是怎样执行的才得到最后颠倒的顺序。请分解一下执行步骤,谢谢
双面维诺妮卡
9 years, 7 months ago
Answers
php
$string = 'abc'; reverse($string); function reverse($str){ if(strlen($str)>0){ reverse(substr($str,1)); } echo substr($str,0,1);//用var_dump(substr($str,0,1));看 return; } 第一次调用reverse(abc) if成立 再二次调用reverse(bc) if成立 再三次调用reverse(c) if成立 再四次调用reverse('') if不成立 然后往回调,依次输出false,c,b,a 其实可以implode('',array_reverse(str_split('abc')));//cba
善良的丸子
answered 9 years, 7 months ago