Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.
[опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)]
Целочисленный тип
Аннотация
Отрицательные и положительные целые числа: синтаксис, диапазон значений и переполнение.
Целочисленный тип представлен целыми числами: отрицательными, положительными и нулем. Обычно каждое такое число занимает в памяти 4 байта, или 32 бита (в принципе, это зависит от платформы, но для большинства платформ верным является именно этот размер); в этом случае получаем следующее множество допустимых значений этого типа: {–2147483647, ..., -2, -1, 0, 1, 2, ..., 2147483647}.
Замечание
В отличие от некоторых других языков, PHP поддерживает только один целочисленный тип (он соотвествует типу signed long в C).
Синтаксис. Целые числа могут быть записаны при помощи десятичной (decimal), восьмеричной (octal) и шестнадцатеричной (hexadecimal) нотации. Числа могут быть предварены знаком (- или +).
С десятичной системой проблем быть не должно, так как ею мы пользуемся повседневно в обычной жизни.
print 1234567890; // decimal
1234567890
print +1234567890; // decimal
1234567890
print -1234567890; // decimal
-1234567890
Чтобы число воспринималось как восьмеричное, оно должно начинаться с цифры 0 и не содержать иных цифр, кроме как от 0 до 7.
print 01000; // octal (decimal 512)
512
Шестнадцатеричные числа начинаются с цифры 0, за которой следует символ 'x' (или 'X'), и могут содержать, помимо обычных цифр (0..9), символы 'A', 'B', 'C', 'D', 'E', и 'F' (также и в нижнем регистре).
print 0xFF; // hexadecimal (decimal 255)
255
Замечание
Если в число (независимо от нотации) случайно внедрится несвойственный ему буквенный символ, будет выдано сообщение об ошибке.
print 123N45; // error [N]
Parse error: parse error, unexpected T_STRING
Несколько иной эффект вызовет внедрение в восьмеричное число несвойственной ему цифры (8 или 9): вместо сообщения об ошибке, часть числа, начиная с этой цифры, будет просто проигнорирована.
print 0100801; // error [8] (0100 = 64)
64
Переполнение. Переполнением (overflow) называется ситуация, когда целое число выходит за рамки допустимого диапазона значений для целочисленного типа. В этом случае оно будет автоматически преобразовано к более емкому типу чисел с плавающей запятой. Чтобы продемонстрировать это, воспользуемся функцией var_dump().
var_dump(2147483647);
int(2147483647)
var_dump(2147483648); // overflow
float(2147483648)
Замечание
К сожалению, в PHP не существует столь очевидного способа узнать диапазон допустимых значений целых чисел для данной платформы, как, например, в C (предопределенная константа MAXINT).