PHP虽然不受块作用域的影响,但还是会有一定的坑,比如:
<?php
$arr = [ 1, 2, 4];
foreach ($arr as $val){
$sum+=$val;
}
var_dump($val,$sum);
exit;
?>
输出的是:
int(4);
int(7);
这里就是因为foreach循坏内的$val和$sum变量实质已经推出循环了,但是打印出来还是会显示变量存在,原因就是因为PHP有函数作用域,但是没有块级作用域,这样建议在每次使用变量的情况下都初始化一下,能够比较好的预防坑。