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递增,然后返回。