是真的吗(在PHP中)?

是真的吗(在PHP中)?,php,types,compare,boolean,Php,Types,Compare,Boolean,用什么更好 if ( $boolean ) {} …或: if ( $boolean === true ) {} 两者都可以工作,都检查$boolean是否设置为“true”。第二个还检查$boolean的类型 如果我们假设$boolean包含布尔值,我应该使用什么选项?如果$boolean是布尔值,那么如果($boolean)就可以了 通常,如果您正在测试函数的结果,例如返回数值或布尔值的strpos(),则只需进行额外的检查。如果您只需要进行真实检查,则第一种检查更好 它较短,因此更容

用什么更好

if ( $boolean ) {}
…或:

if ( $boolean === true ) {}
两者都可以工作,都检查$boolean是否设置为“true”。第二个还检查$boolean的类型


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

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


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

如果您只需要进行真实检查,则第一种检查更好

  • 它较短,因此更容易阅读
  • 即使它没有明确地将equality声明为true,但它所做的是相当明显的

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

如果
$boolean
包含布尔值(即
true
false
),则两个方案都将执行相同的操作——第二个方案是多余的

如果布尔值包含truthy或falsy值,而该值不是布尔值,则第二个条件的计算结果将为false

你应该用哪一种?
嗯,这完全取决于你想要达到什么;-)

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

使用<代码>($BooLea==true){} /COD>当您知道<代码> $BooLoe<代码>是一个布尔是多余的,因此我不认为它是好的实践。这可以通过使用显示布尔值的名称命名变量来进一步加强,例如,
$isCool

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

if($notValid) {}

这两个,并不是真的做同样的事情
if($boolean)
更像是一个“not false”语句,为任何非
false
0
null
的内容断言true。如果设置
$boolean='false'
,则该语句将为true


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

大多数情况下,对于
“更好地使用什么?”
问题没有答案。把它标记为主观的(在我看来是毫无意义的)@Col.Shrapnel我不同意,这个答案会帮助我的。@puk你错了。如果你认为它“帮助”了你——你做错了什么事——我是PHP的新手,我正在努力更好地掌握如何将值从PHP返回到javascript。我只是想知道PHP是否应该将
true
'true'
返回到javascript。。。但这是另一个故事<代码>'true'/'false'+1用于提及这两种情况。