我的递归函数是
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值为什么?
答案 0 :(得分:1)
因为后增量($a++
)运算符意味着
返回
$a
,然后将$a
加1。
<强>增加:强>
(如@Matt所述)预增量运算符(++$a
)表示递增然后返回。
所以在你的情况下,你使用了
recursion($i++);
这导致$i
将其当前值返回到函数调用的参数,然后将其自身递增1,因此recursion()
将始终获得相同的$i
因为它在之后递增,它被用作参数。
更改为
recursion(++$i);
会有所帮助。