PHP不支持块级作用域会引发哪些问题?如何避免?

Original 2019-03-14 15:27:13 252
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:写的还是没有毛病的 好好研究研究 多去实现点效果

Release Notes

Popular Entries