<?php
//I have an array like this
$ar = array('0', '1', '2', '3', '4', '5');
for($i = 0; $i < count($ar); $i++)
{
echo $ar[$i+1]; //way1
echo $ar[$i] +=1 //way2
}
?>
那么方式 1 和方式 2 之间有什么不同,因为我看到了相同的结果???
这里的区别在于使用赋值运算符和增量运算符。
第一种方式:
$ar[$i+1] 会在 $i + 1
的索引处打印数组元素,表示循环第一次迭代中的 1。
echo $ar[$i + 1];
$ar[0 + 1];
$ar[1];
因此,它将查找索引 1 的值,即 1。
注意:循环时,当循环到达上次迭代时,您的语句将如下所示:
echo $ar[$i + 1];
$ar[5 + 1];
$ar[6];
它将显示未定义索引的通知,因为数组中未为索引 6 分配任何值。
以第二种方式:
这里使用增量运算符。所以语句会变成这样:
echo $ar[$i] = $ar[$i] + 1;
因此,首先,将 1 添加到 $ar[$] 中,然后分配给它。然后它将回显该更新的值。在循环的第一次迭代中,它将是:
echo $ar[$i] = $ar[$i] + 1;
$ar[$i] = 0 + 1;
finally Ans will be 1;
请澄清您在这里寻找的确切内容。
这两种是完全不同的方法,当您的数组值是其他东西时,会给出不同的结果。
echo $ar[$i+1]; // Means you're printing the values corresponding to array keys 1, 2, 3.....
echo $ar[$i] +=1 // Means you're getting the values of keys 0, 1, 2... and adding 1 to each of the values.
如果你有一个数组$ar = array(3, 6, 2, 10(,这两个将按这种方式工作:
echo $ar[$i+1]; // 6, 2, 10 ....
echo $ar[$i] +=1 // 4, 7, 3, 11....
希望这有帮助。
和平! xD
当然不是。
请注意,您的代码需要在way2
后";"
way1
回显数组中的第 (i+1)
项。
way2
回显i-th
项的值+ 1
因此,如果更改数组,结果可能会有所不同。
例如
$ar = array('1','3','4');
然后
方式 1 将输出:
3,4
并抓住一个OutOfRange Exception
(因为它询问了不存在的$ar[3]
。
Way2 将输出:
2,4,5