你只是递归了$a等于9的时候的递归,没有递归前面操作的,所以是出错,把代码改为:
<?
function recursion($a,$aaa){
if ($a  < 10) {
$aaa=$aaa.$a.";";
return(recursion($a + 1,$aaa));
}else{
return $aaa;
}
}
$bbb=recursion(5,"");
echo($bbb);
?>

解决方案 »

  1.   

    你原来函数中$aaa=$aaa.$a.";"; 不能对函数外面的$aaa 产生影响,只是改变了一个局部变量的copy。
    需要用传址(不知道php是不是这么叫,c里面引用参数)参数才能改变原来函数外面变量的值<?php
    function recursion($a,&$aaa){ // 这里改用&$aaa,加一个& 就行了
    if ($a < 10) { 
    $aaa=$aaa.$a.";"; 
    recursion($a + 1,$aaa); 
    }else{ 
    return $aaa; 


    $bbb='';
    recursion(5,$bbb); //调用的时候,这样就改变$bbb的值了
    echo($bbb); 
    ?>
      

  2.   

    程序里原来不支持改变颜色啊,csdn都多少年了,基本的东西还是这么烂。
    =-------------------
    function recursion($a,&$aaa){ 
    ........改变后
    输出:
    5;6;7;8;9;