php 使用临时变量时 foreach 循环无法迭代
php foreach loop failing to iterate when temporary variables are used
我正在尝试遍历一个简单的 php 数组,并且 运行 出现导致迭代提前终止的奇怪行为。我的 php 版本是 5.6.3。
以下代码按预期打印数字 1 到 5...
$values = array(1, 2, 3, 4, 5);
foreach ($values as $v)
//$temp_variable = $v;
echo "v: " . "$v" . "\n";
但是,如果我像这样取消注释带有临时变量的行,我们只会得到一次迭代!
$values = array(1, 2, 3, 4, 5);
foreach ($values as $v)
$temp_variable = $v;
echo "v: " . "$v" . "\n";
这看起来非常奇怪。创建未使用的临时变量的行为如何导致我们的循环脱离-rails?任何建议将不胜感激,谢谢!
这并不奇怪,如果您不将代码包含在花括号中 {}
那么 foreach 只会执行紧跟其后的行:
foreach ($values as $v)
$temp_variable = $v; //foreach ONLY runs this line in the loop
echo "v: " . "$v" . "\n";
改为:
foreach ($values as $v) {
$temp_variable = $v;
echo "v: " . "$v" . "\n";
}
现在大括号内的所有内容都是循环的一部分。这与 PHP:
中的基本上所有其他控制结构相同
if($condition === TRUE)
echo 'True.'; //this line will run if the statement is true.
else
echo 'False'; //only this line will run if the statement is false.
echo 'Something else'; //this line will run no matter what, but only once.
我正在尝试遍历一个简单的 php 数组,并且 运行 出现导致迭代提前终止的奇怪行为。我的 php 版本是 5.6.3。
以下代码按预期打印数字 1 到 5...
$values = array(1, 2, 3, 4, 5);
foreach ($values as $v)
//$temp_variable = $v;
echo "v: " . "$v" . "\n";
但是,如果我像这样取消注释带有临时变量的行,我们只会得到一次迭代!
$values = array(1, 2, 3, 4, 5);
foreach ($values as $v)
$temp_variable = $v;
echo "v: " . "$v" . "\n";
这看起来非常奇怪。创建未使用的临时变量的行为如何导致我们的循环脱离-rails?任何建议将不胜感激,谢谢!
这并不奇怪,如果您不将代码包含在花括号中 {}
那么 foreach 只会执行紧跟其后的行:
foreach ($values as $v)
$temp_variable = $v; //foreach ONLY runs this line in the loop
echo "v: " . "$v" . "\n";
改为:
foreach ($values as $v) {
$temp_variable = $v;
echo "v: " . "$v" . "\n";
}
现在大括号内的所有内容都是循环的一部分。这与 PHP:
中的基本上所有其他控制结构相同if($condition === TRUE)
echo 'True.'; //this line will run if the statement is true.
else
echo 'False'; //only this line will run if the statement is false.
echo 'Something else'; //this line will run no matter what, but only once.