【问题标题】:Difference in the order in IF conditions [duplicate]IF条件中的顺序差异[重复]
【发布时间】:2015-09-02 05:33:00
【问题描述】:

我经常在 if 条件下阅读示例和一些代码:

if (false === $var)
if (null  === $var) 

而不是

if ($var === false)
if ($var === null)

主要区别是什么?我应该更喜欢哪一个?

【问题讨论】:

  • 两者相似。你可以选择其中任何一个。

标签: php


【解决方案1】:

这些被称为尤达条件。 “优点”是您在检查变量值时不会意外为其赋值。
一个例子是:

if( 100 = $var ) 会给你一个语法错误。所以争论是尤达条件保证你实际上是在检查一个值而不是设置一个值。 This pretty much sums it up.

【讨论】:

    【解决方案2】:

    据我所知,这是今天的首选语法。

    if (false === $var)
    if (null  === $var)
    

    因为当你不小心遇到这样的错字时:

    if ($var = false)
    

    您将 false 分配给变量 $var,当您运行代码时很难跟踪此错误。

    【讨论】:

    • 另一个麻烦是当你有那个错字时,它不会产生任何错误。这就是为什么很难追踪它的原因。我希望这会有所帮助。
    【解决方案3】:

    如果(假 === $var) if (null === $var)

    这是检查 if 条件中的值的首选和最佳方法 因为如果我们使用

    $var === 假

    手动输入错误,例如

    $var = false 可能会意外地将值 false 分配给变量 $var 并且将无法检测到。

    如果 false= $var 编译器会抛出一个明确的错误,我们可以很容易地识别错误

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 2013-06-01
      • 2022-12-31
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 2016-01-19
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多