摘要:1、示例代碼<?php $arr = [1, 2, 4]; foreach ($arr as $val) { $sum += $val; } var_dump($val,$sum); exit;?>2、輸出int(4)int(7)為什么foreach 循環(huán)內(nèi)的$val和$sum變量已經(jīng)退出循環(huán)了,打印出來(lái)還是顯示變量存在?原因是:PHP有函數(shù)作用域,但是沒(méi)有
1、示例代碼
<?php
$arr = [1, 2, 4];
foreach ($arr as $val) {
$sum += $val;
}
var_dump($val,$sum);
exit;
?>
2、輸出
int(4)
int(7)
為什么foreach 循環(huán)內(nèi)的$val和$sum變量已經(jīng)退出循環(huán)了,打印出來(lái)還是顯示變量存在?原因是:PHP有函數(shù)作用域,但是沒(méi)有塊級(jí)作用域,沒(méi)有C/C++、java等語(yǔ)言的塊級(jí)作用域概念。
3、避免方法
不同作用域的變量怕重名。沒(méi)有塊作用域,但把塊寫(xiě)短一點(diǎn),避免無(wú)意識(shí)的重名,便于觀察;把長(zhǎng)的塊寫(xiě)成函數(shù),就有局部作用域了。
批改老師:韋小寶批改時(shí)間:2019-03-14 15:33:59
老師總結(jié):寫(xiě)的還是沒(méi)有毛病的 好好研究研究 多去實(shí)現(xiàn)點(diǎn)效果