PHP -номера
В этой главе мы подробно рассмотрим целые числа, числа с плавающей запятой и числовые строки.
PHP-номера
Одна вещь, которую следует отметить в PHP, это то, что он обеспечивает автоматическое преобразование типов данных.
Таким образом, если вы присваиваете целочисленное значение переменной, тип этой переменной автоматически будет целым числом. Затем, если вы присвоите строку той же переменной, тип изменится на строку.
Это автоматическое преобразование иногда может сломать ваш код.
Целые числа PHP
2, 256, -256, 10358, -179567 — все целые числа.
Целое число — это число без десятичной части.
Целочисленный тип данных — это недесятичное число от -2147483648 до 2147483647 в 32-битных системах и от -9223372036854775808 до 9223372036854775807 в 64-битных системах. Значение больше (или меньше) этого будет сохранено как число с плавающей запятой, поскольку оно превышает предел целого числа.
Примечание. Еще одна важная вещь, которую нужно знать, это то, что даже если 4 * 2,5 равно 10, результат сохраняется как число с плавающей запятой, потому что один из операндов является числом с плавающей запятой (2,5).
Вот несколько правил для целых чисел:
- Целое число должно иметь хотя бы одну цифру
- Целое число НЕ должно иметь десятичной точки
- Целое число может быть как положительным, так и отрицательным
- Целые числа могут быть указаны в трех форматах: десятичном (на основе 10), шестнадцатеричном (на основе 16 — с префиксом 0x) или восьмеричном (на основе 8 — с префиксом 0).
PHP имеет следующие предопределенные константы для целых чисел:
- PHP_INT_MAX — наибольшее поддерживаемое целое число
- PHP_INT_MIN — наименьшее поддерживаемое целое число
- PHP_INT_SIZE — размер целого числа в байтах
PHP имеет следующие функции для проверки, является ли тип переменной целочисленным:
- is_int()
- is_integer() - псевдоним is_int()
- is_long() - псевдоним is_int()
Пример
Проверьте, является ли тип переменной целочисленным:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHP плавает
Число с плавающей запятой — это число с десятичной точкой или число в экспоненциальной форме.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 — все числа с плавающей запятой.
Тип данных float обычно может хранить значение до 1,7976931348623E+308 (зависит от платформы) и иметь максимальную точность 14 цифр.
PHP имеет следующие предопределенные константы для чисел с плавающей запятой (начиная с PHP 7.2):
- PHP_FLOAT_MAX — наибольшее представимое число с плавающей запятой
- PHP_FLOAT_MIN — наименьшее представимое положительное число с плавающей запятой
- - PHP_FLOAT_MAX - наименьшее представимое отрицательное число с плавающей запятой
- PHP_FLOAT_DIG — количество десятичных цифр, которое можно округлить до числа с плавающей запятой и обратно без потери точности
- PHP_FLOAT_EPSILON — наименьшее представимое положительное число x, так что x + 1.0 != 1.0
В PHP есть следующие функции для проверки того, является ли тип переменной плавающим:
- is_float()
- is_double() - псевдоним is_float()
Пример
Проверьте, является ли тип переменной float:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP бесконечность
Числовое значение, превышающее PHP_FLOAT_MAX, считается бесконечным.
В PHP есть следующие функции для проверки того, является ли числовое значение конечным или бесконечным:
Однако функция PHP var_dump() возвращает тип данных и значение:
Пример
Проверьте, является ли числовое значение конечным или бесконечным:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN означает не число.
NaN используется для невозможных математических операций.
В PHP есть следующие функции для проверки, не является ли значение числом:
Однако функция PHP var_dump() возвращает тип данных и значение:
Пример
Неверный расчет вернет значение NaN:
<?php
$x = acos(8);
var_dump($x);
?>
Числовые строки PHP
Функцию PHP is_numeric() можно использовать для определения того, является ли переменная числовой. Функция возвращает значение true, если переменная является числом или числовой строкой, и значение false в противном случае.
Пример
Проверьте, является ли переменная числовой:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Примечание. Начиная с PHP 7.0: функция is_numeric() возвращает FALSE для числовых строк в шестнадцатеричной форме (например, 0xf4c3b00c), так как они больше не считаются числовыми строками.
Приведение строк PHP и чисел с плавающей запятой к целым числам
Иногда вам нужно преобразовать числовое значение в другой тип данных.
Функции (int), (integer) или intval() часто используются для преобразования значения в целое число.
Пример
Приведите число с плавающей запятой и строку к целому числу:
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x =
"23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>