1> false)返回true?

这个问题在这里已经有了答案:

  • 在PHP 3的答案中进行类型杂耍和(严格)大于/小于比较

  • 在这种情况下,它是-1被转换为布尔值( true ,因为只有0被视为false )。 所以最后的比较是

    if (true > false) {
        ...
    }
    

    Juggling类型可能非常不直观,因此总是尽量避免比较两种不同类型变量的情况。 在平等比较的情况下,总是尝试使用身份运算符( === ),在不平等的情况下,您只能添加手动投射。

    另见:http://us3.php.net/manual/en/types.comparisons.php


    请参阅PHP比较运算符 - 各种类型的表格比较

    Type of Operand 1   Type of Operand 2       Result
    bool or null        anything                Convert both sides to bool, FALSE < TRUE
    

    所以如果你比较bool和其他的东西,那么第二个操作数被转换为布尔值true。 我们还有这里的信息,假设FALSE < TRUE ,你的例子究竟发生了什么。


    <是一个数字比较运算符,代码没有宽松比较,将-1转换为真,从而得到结果。

    链接地址: http://www.djcxy.com/p/58507.html

    上一篇: 1 > false) returns true?

    下一篇: What is the rationale for inf==inf in IEEE754