2014-01-08 74 views
1

我在想如果$ count ++增加計數器的方式可以在條件語句中使用嗎?變量會保持它的新值嗎?

$count = 0; 
foreach ($things as $thing){ 
    if($count++ == 1) continue; 
    ... 
} 
+0

是的,它會的。 :) –

+6

我想你已經測試過它,發現你不明白的結果。你能和我們分享細節嗎? –

+1

這應該起作用。 '$ count ++'會增加'$ count'並返回*原始*值。 –

回答

7
  • $計數++是一個後遞增。這意味着它會在評估後遞增
  • ++ $ count是一個預增量。這意味着它將在之前遞增評估。

http://www.php.net/manual/en/language.operators.increment.php

要回答你的問題,這是完全合法的,只是保持在檢查你的價值將後2 的,如果已經完成。

+0

只是出於好奇,評估後不應該「$ count」爲1。首先是'0'。增量會給你'1'嗎?我可能會錯過一些東西。 – War10ck

+2

@ War10ck:不,如果$ count爲1,if將爲真,但由於它是後增量,所以在if確定爲真後,THEN $計數將遞增,因此它將爲2.第一次迭代通過循環將評估條件爲假。 – GeminiDomino

+0

@GeminiDomino啊,是的。對不起,這是一個非常愚蠢的問題。我現在看到它。謝謝哥們。欣賞解釋。 :) – War10ck

2

是的,它會,但你要注意$ count ++(增量後)和++ $ count(增量前)之間的差異,否則你可能得不到你期望的結果。例如,您編寫的代碼片段將在第二個「$ thing」上「繼續」,但是要經過第一個循環,因爲$ count的值不會遞增,直到其值被測試。如果這就是你要做的,那就對了,但它是那些常見的「陷阱」之一,所以我想我應該提及它。