Слабо угадать что выведет код ниже?
Я в упор не понимаю, почему в integer (который в PHP отнюдь не unsigned, насколько я знаю) влезает 2^32-1. При этом влезает даже 2^32 без -1 (то бишь этот integer у них вроде как 64-х битный). Но если два таких integer сложить, то получим мы... float!
Я не понимаю как языку с такой чудесной логикой и непредсказуемым поведением можно доверять данные. А писать собственную реализацию всех арифметических операций для него, это уже верх извращения. Лучше уж свой язык программирования написать, это быстрее чем заставить код на PHP вести себя предсказуемо.
$a = 0xFFFFFFFF;
$b = 0xFFFFFFFFF;
$c = $a + $a;
echo $a.", «.is_int ($b).»\n";
$a++;
echo $a.", «.is_int ($b).»\n";
echo $b.", «.is_int ($b).»\n";
echo $c.", «.is_int ($c).»\n";