<分区> 分区>
在 PHP 或 Python(其他语言可能适用)中,为什么在 for(或 foreach)中声明的值在外部作用域中仍然存在(并被覆盖) ?
例如,在 PHP 中:
<?php
$value = 0;
$test = [1,2,3];
foreach ($test as $value) {
echo $value;
}
echo $value;
(执行它(也使用 for 循环)here )
将输出:
1233
在 Python 中:
value = 0
test = [1,2,3]
for value in test:
print(value)
print(value)
(执行 here )
将输出:
1
2
3
3
它可能适用于我还不知道的其他语言。
问题是为什么这些for block 是这样设计的? 为什么它不像(例如)C,其中索引变量仅存在于 for 范围内(例如 here )?
