String comparison

This WTF is documented but a WTF none the less:

If you compare two numerical strings, they are compared as integers.

. You need to add the definition of numerical strings to get the WTF:

Numeric strings consist of optional sign, any number of digits, optional decimal part and optional exponential part. Thus +0123.45e6 is a valid numeric value. Hexadecimal notation (0xFF) is allowed too but only without sign, decimal and exponential part.

. So for example "15" == "0xF".


Personally I haven't

Personally I haven't introduced any bugs because of this in my applications but I believe someone somewhere must have experienced some serious WTFs because of this feature.

Consider this: $s1 =

Consider this:

$s1 = "000002";
$s2 = "002";
if ($s1 == $s2) print "'$s1' and '$s2' strings are equal!\n";

in_array() also suffers from this "feature";


Well use === when the type of

Well use === when the type of the variables to compare is relevant ... and for in_array use the 3rd and last argument "strict" which allows to take care of the types of the value you are searching.

I don't think we can call this a real WTF, as the way PHP is permissive with variable types cannot be possible without some elementary rules of types interpretation, in general it allows code to be shorter, but it's sure that with inexperienced coders this can lead to this kind of confusion.

I used to be more than happy

I used to be more than happy to seek out this internet-site.I wanted to thanks alfa car in your time for this glorious read!! I positively enjoying each little bit of it bmw cars and I have you bookmarked to check out new stuff you weblog post

Nuestro Software de

Nuestro Software de fidelizacion de clientes gestiona cualquier programas de fidelizaciĆ³n de clientes.Programas de fidelizacion de clientes-Tarjetas fidelizacion-Tarjetas fidelizacion de clientes-Fidelizacion