Я просто хотел проверить переполнение для целого числа, такого как в C (ну, если бы оно было чуть больше целого числа в любом случае). Когда я посмотрел, действительно ли PHP делает то, что я ему сказал, кажется, что по какой-то причине он не работает. Вот мои тесты проблемы:
define('INT_MAX', 0x7FFFFFFF);
print "In decimal: " . hexdec(INT_MAX) . "<br/>";
print "In decimal: " . hexdec(0x7FFFFFFE) . "<br/>"; //Under int_max
print "In hex: " . dechex(hexdec(INT_MAX)) . "<br/>";
print "Float: " . ((bool)is_float(INT_MAX)?'true':'false') . "<br/>";
Результаты:
В десятичном виде: 142929835591
В десятичном виде: 142929835590
В шестнадцатеричном: 47483647
Float: false
Как я видел в руководстве, он будет брошен на плаву, если его свергнут, но, похоже, нет, и он явно намного выше. Я сошел с ума и что-то упустил здесь, или есть какая-то странная проблема, о которой мне действительно нужно знать при работе с шестнадцатеричной системой в PHP?