PHPの整数(integer型)はCのlong型をそのまま利用しています。つまり、32bit環境であれば整数の範囲は-2^31から2^31-1までとなります。また、PHP 4.4.0以降および5.0.5以降、最大の整数を表す定数PHP_INT_MAXが利用できます。
ところで、最大の整数に1を足すと何が起こるのでしょうか。PHPマニュアルの「整数のオーバーフロー」にも記述がありますが、整数の範囲を超えるような演算の結果はfloat型となります。
<?php var_dump(PHP_INT_MAX); // int(2147483647) var_dump(PHP_INT_MAX+1); // float(2147483648)
そのため、整数の最大値や最小値の付近では一見不思議な現象が起こります。