Search code examples
phpoperatorsrelationalcomparison-operators

Do relational operators like less than, greater than, gte, lte use type conversion in PHP?


Do relational operators like less than, greater than, gte, lte use type conversion? If they do, why are there no strict comparison relational operators like !== or === ?


Solution

  • No, they aren't strict.

    They can compare most types against each other, and cast as needed. For instance there's support for string comparisons:

     $true = "a" < "b";
    

    Internally that's zendi_smart_strcmp().

    If you want to do strict comparisons, you can just check the types yourself, or cast as needed.