本帖最后由 iamsai 于 2013-09-24 21:00:08 编辑

解决方案 »

  1.   

    return;是返回的意思,也就这函数的程序不再往下面跑了,函数不需要返回值,所以就不加了!
      

  2.   

    为什么会输出hello呢有谁能帮我分析分析
      

  3.   

    $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
    ello
    llo
    lo
    oollehNULL
      

  4.   

      echo substr($str,0,1);  的功能不是输出字符串的第一个字符吗?那它输入完0以后return NULL到调用函数程序不就结束了吗?为什么会输出llehNULL
      

  5.   

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

  6.   

    在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?
      

  7.   

    在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?
      

  8.   

    在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?