【问题标题】:PHP: Using $count++ in an if conditionPHP:在 if 条件下使用 $count++
【发布时间】:2014-01-26 19:09:48
【问题描述】:

我想知道是否可以在条件语句中使用 $count++ 递增计数器的方法?变量会保持它的新值吗?

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

【问题讨论】:

  • 我想你已经测试过了,发现了你不理解的结果。你能和我们分享一下细节吗?
  • 这应该可以。 $count++ 将增加 $count 并返回其原始值。

标签: php loops conditional


【解决方案1】:
  • $count++ 是一个后增量。这意味着它会在评估之后递增。
  • ++$count 是一个预增量。这意味着它将在评估之前递增。

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

要回答您的问题,这是完全有效的,只需检查您的值将是 2 if 完成后

【讨论】:

  • 只是出于好奇,不应该$count在评估后为1。首先是0。递增会给你1 不是吗?不过我可能会遗漏一些东西。
  • @War10ck: 不,如果 $count 为 1,if 将为 true,但由于它是后增量,在 if 确定为 true 之后,THEN $count 将增加,所以它将是 2。循环的第一次迭代将评估条件为假。
  • @GeminiDomino 啊,是的。抱歉,这是一个非常愚蠢的问题。我现在看到了。谢谢哥们。欣赏解释。 :)
  • 德纳达。我了解到,增量前/后增量可能具有欺骗性的细微差别。 :)
【解决方案2】:

是的,它会,但是你要注意$count++(post-incrementation)和++$count(pre-incrementation)的区别,否则你可能得不到你期望的结果。

例如,您编写的代码 sn-p 将在第二个“$thing”上“继续”,但在第一个“$thing”上执行循环,因为 $count 的值直到它的值之后才会增加测试。如果这就是你想要的,那就继续吧,但这是常见的“陷阱”之一,所以我想我应该提一下。

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多