String compare on a bool

后端 未结 3 1004
轮回少年
轮回少年 2020-12-07 00:48

I\'m pretty sure this is a simple fundamental flaw in my newb PHP knowledge, but I was surprised when the following happened:

相关标签:
3条回答
  • 2020-12-07 01:14

    if($result === "email") will do the trick but personally I would never go this way.

    0 讨论(0)
  • 2020-12-07 01:18

    Yes, true is equal (==) to a non-empty string. Not identical (===) though.

    I suggest you peruse the type comparison table.

    0 讨论(0)
  • 2020-12-07 01:30

    It returns true because php will try to convert something to be able to compare them. In this case it probably tries to convert the string on the right side to a bool which will be true in this case. And true == true is ofcourse true.

    By doing $result === "email" (triple =) you tell PHP that it shoudn't do conversions and should return false if the types don't match.

    0 讨论(0)
提交回复
热议问题