PHP 与 Python 中 for 循环后的意外值

Unexpected value after for-loop in PHP vs Python

为什么 for 循环中的最后一个值在 PHP 和 Python 中不同?我正在检查 for 循环之后的值。该值不是我在 Python 3.9.7 中期望的 7。在 PHP 8.0 中,for 循环中的最后一个值改为 8。这是我实现中的一个抽象示例,因为我在 for 循环之后检查值,因为我有条件中断。

for ($i = 1; $i <= 8; ++$i) { echo "i: $i\n"; } echo "end $i\n";
i: 1
i: 2
i: 3
i: 4
i: 5
i: 6
i: 7
end 8

Python

>>> for n in range(1,8):
...     print(n)
... 
1
2
3
4
5
6
7
>>> print(n)
7

$i++递增,条件满足/不满足...继续循环/继续执行。所以一般来说,递增发生在比较发生之前,以便知道当前迭代的值,退出条件正在与之进行比较。这是合乎逻辑的。

并且您错误地移植了 Python 代码...因此比较苹果与梨。

foreach (range(1, 8) as $number) {
    echo $number;
}