I\'m pretty sure this is a simple fundamental flaw in my newb PHP knowledge, but I was surprised when the following happened:
if($result === "email")
will do the trick but personally I would never go this way.
Yes, true
is equal (==
) to a non-empty string. Not identical (===
) though.
I suggest you peruse the type comparison table.
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.