php递归函数foreach结果意外
这是foreach循环中的一个简单递归示例,可以理解结果为什么会得到这个结果php递归函数foreach结果意外,php,Php,这是foreach循环中的一个简单递归示例,可以理解结果为什么会得到这个结果请回答 function sub($i = 1){ $level = array(1,2); if($i <= 2){ foreach ($level as $count){ echo "count => {$count} and i => {$i}<br/>"; sub(++$i); } } } sub()
请回答
function sub($i = 1){
$level = array(1,2);
if($i <= 2){
foreach ($level as $count){
echo "count => {$count} and i => {$i}<br/>";
sub(++$i);
}
}
}
sub();
我期待着这个结果
count => 1 and i => 1
count => 1 and i => 2
这将是一个无限循环,直到它被突然终止
供参考说明:
$i
的值已更改
当您执行sub(+$i)
时,实际上将$i
的值更改为递增一。因此,当函数返回且foreach循环转到数组的第二个值时,$i
的值发生了更改,从而产生了意外的结果
尝试执行
sub($i+1)
。输出现在是正确的,但仍然与预期的输出不同。您正在测试,$i得到了什么结果???我添加了我的结果。@PH.niskhkar所以为什么我得到最后的结果计数=>2和i=>2
count => 1 and i => 1
count => 1 and i => 2