PHP: Zero equals to any string
In PHP any string is equals to 0
, except when it starts with a number that's not zero.
// Equals $result = 0 == ''; $result = 0 == '0'; $result = 0 == 'string'; $result = 0 == '0string'; // Not Equals $result = 0 == '1string';
When there's an integer in one of the operands, PHP converts the other to an integer. If it starts with a number, all the subsequent numbers will be returned when casting the string value to an integer. 1string
will result in 1
, and 123string
will result in 123
.
I spent sometime trying to figure out why my code wasn't working. This could be avoided by using the identical operator ===
, or casting the integer value to string, rather the equal operator ==
.