PHP的一个问题

先看代码吧:

function checkData($a, $arr=[]){
    if($a < 5){
        $arr[] = $a;
        $a ++;
        checkData($a,$arr);
    }
    return $arr;
}

$a = 2;
$res = checkData($a);
echo "结果是";
var_dump($res);

执行这段代码,我期望的结果是返回一个数组 [2,3,4];

请问应该怎样修改并说明理由。非常感谢!

智慧大石
浏览 403回答 5
5回答

largeQ

将 function checkData($a, $arr=[]){ 改为 function checkData($a, &$arr=[]){

繁花不似锦

何苦呢?用range不挺好 $res = range(2, 5); echo "结果是"; var_dump($res);

慕的地10843

好吧,根据你问题的修改再修改了下答案~代码如下 function checkData($a){ static $arr = []; if($a < 5){ $arr[] = $a; $a ++; checkData($a); } return $arr; } $a = 2; $res = checkData($a); echo "结果是"; var_dump($res);

吃鸡游戏

将$arr设置为静态的数组。不用做参数
打开App,查看更多内容
随时随地看视频慕课网APP