你只是递归了$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);
?>
<?
function recursion($a,$aaa){
if ($a < 10) {
$aaa=$aaa.$a.";";
return(recursion($a + 1,$aaa));
}else{
return $aaa;
}
}
$bbb=recursion(5,"");
echo($bbb);
?>
需要用传址(不知道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);
?>
=-------------------
function recursion($a,&$aaa){
........改变后
输出:
5;6;7;8;9;