Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5 для начинающих

  Все выпуски  

ДАННЫЕ: ТИПЫ ДАННЫХ - Целочисленный тип


PHP 5 для начинающих

Вниманию читателей!

Отдельные выпуски рассылки в той или иной мере взаимосвязаны. С предыдущими выпусками Вы можете ознакомиться:

  1. в архиве рассылки (оригиналы выпусков);
  2. на сайте рассылки (исправленные и дополненные версии).

# # #

Вы также можете подписаться на рассылку "PHP 5: Новые возможности".

PHP 6 уже в разработке!

Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.

http://pterodactyl.l2p.net/e107/

[опрос на английском языке: 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).

Created with DocBook Created with Libxslt


В избранное