【问题标题】:Is True (In PHP)? [closed]是真的(在 PHP 中)吗? [关闭]
【发布时间】:2011-08-11 22:51:42
【问题描述】:

用什么比较好?

if ( $boolean ) {}

...或:

if ( $boolean === true ) {}

两者都有效,都检查 $boolean 是否设置为“true”。第二个也检查 $boolean 的类型。

如果我们假设 $boolean 持有布尔值,我应该使用什么选项?

【问题讨论】:

  • 大多数时候"What to use better?" 的问题没有答案。将其标记为主观的(在我看来毫无意义)
  • @Col.Shrapnel 我不同意,这个答案会对我有所帮助。
  • @puk 你错了。如果你认为它“帮助”了你——你做错了什么
  • 我是 PHP 新手,我正在尝试更好地掌握如何将值从 PHP 返回到 javascript。我只是在寻找 PHP 是否应该将 true'true' 返回到 javascript。
  • 您只能“返回”(打印输出)字符串……但那是另一回事了。 'true'/'false'

标签: php types compare boolean


【解决方案1】:

如果您只是想要一个真实的检查,第一个更好。

  • 它更短,因此更易于阅读
  • 尽管它没有明确声明相等为真,但它的作用相当明显

当您必须确定数据的类型(例如输入验证等)时,使用 === 进行显式类型检查是更好的选择

【讨论】:

  • +1 用于提及这两种情况。
【解决方案2】:

当您知道$boolean 是布尔值时使用if ( $boolean === true ) {} 是多余的,因此我认为它不是一个好习惯。这可以通过使用显示其 booleaness 的名称命名变量来进一步加强,例如$isCool.

【讨论】:

    【解决方案3】:

    两者,并没有真正做同样的事情。 if ($boolean) 更像是一个“非假”的声明,对于不是 false0null 的任何东西都断言为真。如果您设置$boolean = 'false',则该语句为真。

    假设它是您想要的纯布尔比较,您应该使用后一种情况明确检查变量的内容实际上是布尔值。

    【讨论】:

      【解决方案4】:

      如果$boolean 是一个布尔值,那么if ($boolean) 就可以了。

      通常,您只需在测试函数的结果时进行额外检查,例如返回数字 布尔值的strpos()

      【讨论】:

        【解决方案5】:

        如果$boolean 包含一个布尔值(即truefalse,那么两个提案将执行相同的操作——第二个提案是冗余的。

        如果布尔值包含 truthyfalsy 值,这不是布尔值,那么您的第二个条件将被评估为 false。

        你应该使用哪一个?
        好吧,这完全取决于您想要实现的目标 ;-)

        • 通常,如果任何 not-0 数字应被视为 true,则应使用第一种语法
        • 但是,如果您只希望true 被认为是真实的,那么您应该使用第二种语法。

        【讨论】:

          【解决方案6】:

          如果你有一个合适的变量名,第一个选项会增加可读性,比如:

          if($notValid) {}
          

          【讨论】:

            猜你喜欢
            • 2012-05-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-22
            • 2011-03-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多