Anyone know why in php
var_dump( "cat" == 0 );
Evaluates to true? Also I realize:
var_dump( "cat" === 0 );
has the intended result, but curious as to why the first case would be true. Also this is php 5.3.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The PHP Manual has a type comparison table in it, which gives you an idea of what happens when comparing variables of two different data types.
Your first example (a ‘loose’ comparison since it does not also check the data types of the two operands) implicitly converts the string on the left to an integer. Since it does not start with a number, the string is converted to the integer 0, which is equal to the integer 0.
Your second example compares not only the values but the types as well. Since the type is different, the comparison is false.