为什么我会使用$key++
和$key+1
获得不同的输出?
如何使用foreach
来引用循环中的下一个元素?
foreach($diff as $key=>$val) {
if(in_array($diff[$key],$common) && in_array($diff[$key+1],$common)) {}
if(in_array($diff[$key],$common) && in_array($diff[$key++],$common)) {}
}
答案 0 :(得分:4)
$key + 1
返回$key + 1
,不会修改$key
(请参阅documentation)。
$key++
返回$key
并将$key
更改为$key + 1
(请参阅documentation)。
您应该使用前者,因为没有理由修改$key
。
答案 1 :(得分:2)
$x++
返回$x
的旧值(在增量之前)。例如,$x=3; print $x++;
将打印“3”。 它还会修改$x
,因此它不是最佳选择,除非这是您的意图。 (这里,递增将毫无用处,特别是因为修改后的键永远不会看到循环外部。)
++$x
会返回$x
的新值。但是,与$x++
一样,仅仅获取下一个数字在语义上是错误的,因为它会修改$x
。
坚持使用$x + 1
。
答案 2 :(得分:0)
$key+1
始终只为该实例的$key
添加1。它根本不会修改$key
$key++
增加$key
值,并在下一个循环开始时保留该值
答案 3 :(得分:0)
$key++
将$key
的值增加1。
$key+1
将$key
的值加1,但不会更改它。
答案 4 :(得分:0)
$key + 1
会添加到密钥,但实际上会增加$key
。
$key++
将取$key
的值并在返回后,再增加$ key(使用后)。