Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.
[опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)]
Приведение к целочисленному типу
Аннотация
Особенности приведения данных к целочисленному типу.
Для явного приведения данных к целочисленному типу используется выражение (int) либо (integer). Впрочем, как и в случае с логическим типом, обычно заботиться о таком преобразовании не нужно, так как при необходимости оно осуществляется автоматически.
Преобразование данных логического типа. Значение false приводится к значению 0, а значение true - к значению 1.
var_dump((int) false);
int(0)
var_dump((int) true);
int(1)
Преобразование чисел с плавающей запятой. Числа с плавающей запятой при приведении к целочисленному типу округляются в меньшую сторону.
var_dump((int) 3.99);
int(3)
Внимание
При попытке преобразования числа с плавающей запятой, выходящего за пределы допустимых значений для целых чисел, результат будет неопределенным.
var_dump(1000000000000);
float(1.0E+12)
var_dump((int)1000000000000);
int(-727379968)
Неопределенный результат может быть также получен в случае преобразования результата операций с дробными числами (это связано с особенностями внутреннего представления чисел с плавающей запятой).
var_dump((0.7 + 0.1) * 10);
float(8)
var_dump((int) ((0.7 + 0.1) * 10));
int(7)
Преобразование данных строкового типа. Приведение строк к целочисленному типу, по сути, сводится к преобразованию результата предварительного автоматического приведения строки к типу number. Такому автоматическому приведению последовательно подвергаются слева направо символы, образующие строку, до тех пор, пока не встретится недопустимый символ. Если недопустимым окажется самый крайний символ слева, результат преобразования - 0 (ноль).
Если строка, среди допустимых, содержит символы '.' (точка), 'e' или 'E', то результатом преобразования является число с плавающей запятой. В остальных случаях (с учетом попадания значения в допустимый для целых чисел диапазон) строка автоматически преобразуется к целочисленному типу.
Преобразование данных других типов. Результат приведения к целочисленному всех остальных типов следует считать непредсказуемым. Хоть на данный момент этот результат получается путем предварительного преобразования других типов к логическому, а уже потом - к целочисленному, но такое поведение может быть в любой момент изменено.