注意:这是在PHP中处理变量范围的参考问题.请关闭符合此模式的许多问题中的任何一个.
什么是PHP中的"变量范围"?一个.php文件中的变量是否可以在另一个中访问?为什么我有时会得到"未定义的变量"错误?
我是PHP新手,我不明白为什么下面代码的最终结果是'233'而不是'231',foreach中的$ a是不是临时变量?
<?php
$a = '1';
$c = array('2', '3');
foreach($c as $a){
echo $a ;
}
echo $a;
?>
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?THKS.
更新2014-11-28现在我知道我的问题是什么.正如已接受的答案和这个答案所指出的那样,无论foreach是while行为还是行为functions,它们都只是正常的句子$a='3';.所以现在我知道这是我的误解,而且不仅仅是php因为我在python中尝试过,它也是一样的.
a = 123
b = [1, 2, 3]
for a in b:
print a
print a
Run Code Online (Sandbox Code Playgroud) echo "Point1, a=".$a."\n";
echo "Point1, b=".$b."\n";
if(1<2)
{
$a = 6;
$b['link'] = "here";
echo "Point2, a=".$a."\n";
echo "Point2, b[link]=".$b['link']."\n";
}
echo "Point3, a=".$a."\n";
echo "Point3, b[link]=".$b['link']."\n";
Run Code Online (Sandbox Code Playgroud)
为什么以上代码打印出以下内容?
Point1, a=
Point1, b=
Point2, a=6
Point2, b[link]=here
Point3, a=6
Point3, b[link]=here
Run Code Online (Sandbox Code Playgroud)
根据我的理解,$ a和$ b的范围应该在花括号{}内结束!