This is crazy. I ran across this in an app I was writing. The following code will echo “YES”:
<?php
$var = 0;
if ($var == 'cash') echo 'YES';
else echo 'WEIRD';
?>
WHY??? How is zero interpretted to be equal to ‘cash’ ???
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.
When you compare a number and a string, the string is converted to number. When you convert string ‘cash’ to number, the result is zero. You can use strict comparison (===), so you compare not only the value, but the type as well, and no type casting will be involved