PHP Числа
У цьому розділі ми детально розглянемо цілі числа (Integer), числа з плаваючою точкою (Float) та числові рядки (Number Strings).
PHP Числа
Єдине, на що слід звернути увагу в PHP, це те, що він забезпечує автоматичне перетворення типів даних.
Отже, якщо ви присвоїте змінній ціле число, тип цієї змінної автоматично буде цілим. Тоді, якщо ви призначите рядок тій самій змінній, тип зміниться на рядок.
Це автоматичне перетворення іноді може зламати ваш код.
PHP Цілі числа (Integer)
2, 256, -256, 10358, -179567 - це все цілі числа.
Ціле число – це число без десяткової частини.
Цілий тип даних — це недесяткове число від -2147483648 до 2147483647 у 32-розрядних системах і від -9223372036854775808 до 9223372036854775807 у 64-розрядних системах. Значення, більше (або менше), ніж це, зберігатиметься як float (з плаваючою точкою), оскільки воно перевищує ліміт цілого числа.
Примітка. Важливо знати, що навіть якщо 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 Числа з плаваючою точкою (Float)
Число з плаваючою точкою – це число з десятковою комою або число в експоненціальній формі.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 — усі плаваючі числа.
Тип даних з плаваючою точкою зазвичай може зберігати значення до 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 має такі функції, щоб перевірити, чи є тип змінної float:
- is_float()
- is_double() - псевдонім is_float()
Приклад
Перевірте, чи є тип змінної float:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
Спробуйте самі »
PHP Нескінченність (Infinity)
Числове значення, яке перевищує PHP_FLOAT_MAX, вважається нескінченним.
PHP має такі функції, щоб перевірити, чи числове значення є кінцевим чи нескінченним:
Однак функція PHP var_dump() повертає тип даних і значення:
Приклад
Перевірте, чи є числове значення кінцевим чи нескінченним:
<?php
$x = 1.9e411;
var_dump($x);
?>
Спробуйте самі »
PHP NaN
NaN означає Not a Number (Не Число).
NaN використовується для неможливих математичних операцій.
PHP має такі функції, щоб перевірити, чи значення не є числом:
Однак функція PHP var_dump() повертає тип даних і значення:
Приклад
Недійсне обчислення поверне значення NaN:
<?php
$x = acos(8);
var_dump($x);
?>
Спробуйте самі »
PHP Числові рядки (Numerical Strings)
Функція 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() часто використовується для перетворення значення в ціле число.
Приклад
Перевести float і рядок до цілого числа:
<?php
// Приведення float до int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Приведення string до int
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>
Спробуйте самі »