Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 递归函数中的增量变量问题_Php_Recursion_Increment - Fatal编程技术网

Php 递归函数中的增量变量问题

Php 递归函数中的增量变量问题,php,recursion,increment,Php,Recursion,Increment,我的递归函数是 function recursion($vals,$i) // { $htm=implode('',file($vals)); echo $i; if($htm) { return $htm; } else { echo "\n.................link broken...................\n"; sleep(10); echo "\n.................retrying....................

我的递归函数是

function recursion($vals,$i) //
{
$htm=implode('',file($vals));
echo $i;
if($htm)
{
return $htm;
}
else
{
    echo "\n.................link broken...................\n";
    sleep(10);
    echo "\n.................retrying......................\n";     
    **// return recursion($vals,$i+1);  //case 1
            // return recursion($vals,$i++);    //case 2**
}
}
用例1是递增$i+1的值,而使用$i++不递增$i的值。为什么?

因为递增后(
$a++
)运算符意味着

返回
$a
,然后将
$a
增加1

退房

添加:

和(如@Matt所述)预增量运算符(
++$a
)表示增量,然后返回

所以在你的情况下,你用了

recursion($i++);
这将导致
$i
将其当前值返回到函数调用的参数中,然后将其自身递增1,因此
递归()
将始终获得相同的
$i
,因为它在用作参数后会递增

改为

recursion(++$i);

将有所帮助。

而pre-increment操作符(
++$a
)表示按1递增,然后返回。