PHP — красота!

Слабо угадать что выведет код ниже?
Я в упор не понимаю, почему в integer (который в отнюдь не 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";

Запись опубликована в рубрике Новости с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Оставьте эти два поля как есть:

Защищено Invisible Defender. Показывать 403 для 282 434 плохих парней.