foreach是语言结构,不是函数,函数指的是系统自带函数或自定义函数。如下面的例子
$a = 5;
function _func(){
$a=1;
echo $a;
}
echo $a;
echo '
';
echo _func();
输出结果:
5
1
为什么同一个变量名输出时会有两种不同的结果,就是因为作用域不一样。
-----------------------
再看看下面的例子:
$a = 5;
function _func($a){
echo $a;
}
echo $a;
echo '
';
echo _func();
输出结果:
5
5
结论:局部变量也可以影响函数里面的值,需要传参。如不影响函数内的结果,可以不传参。