abstract:1、示例代码<?php $arr = [1, 2, 4]; foreach ($arr as $val) { $sum += $val; } var_dump($val,$sum); exit;?>2、输出int(4)int(7)为什么foreach 循环内的$val和$sum变量已经退出循环了,打印出来还是显示变量存在?原因是:PHP有函数作用域,但是没有
1、示例代码
<?php
$arr = [1, 2, 4];
foreach ($arr as $val) {
$sum += $val;
}
var_dump($val,$sum);
exit;
?>
2、输出
int(4)
int(7)
为什么foreach 循环内的$val和$sum变量已经退出循环了,打印出来还是显示变量存在?原因是:PHP有函数作用域,但是没有块级作用域,没有C/C++、java等语言的块级作用域概念。
3、避免方法
不同作用域的变量怕重名。没有块作用域,但把块写短一点,避免无意识的重名,便于观察;把长的块写成函数,就有局部作用域了。
Correcting teacher:韦小宝Correction time:2019-03-14 15:33:59
Teacher's summary:写的还是没有毛病的 好好研究研究 多去实现点效果