Skip to main content
 首页 » 编程设计

php之为什么 for block 会覆盖 PHP 和 Python 中的外部作用域

2025年02月15日32lidabo

<分区>

在 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 )?