is_real()
Функция is_real() в PHP 7 проверяет, является ли переменная числом с плавающей точкой. Это устаревший псевдоним функции is_float().
Введение
is_real() — это псевдоним is_float(). Обе функции проверяют, содержит ли переменная значение с плавающей точкой (в PHP используется единственный тип float — «real» и «double» — лишь другие названия одного и того же). Функция возвращает boolean: true для чисел с плавающей точкой, false для всего остального.
Название происходит от математического термина вещественное число. Поскольку в PHP уже есть более понятный и стандартный is_float(), псевдоним is_real() был объявлен устаревшим в PHP 7.4 и полностью удалён в PHP 8.0. На современной установке PHP вызов is_real() приводит к фатальной ошибке Error: Call to undefined function.
Эта страница существует для того, чтобы вы понимали устаревший код, который по-прежнему использует её, — но в любом новом коде используйте is_float().
Синтаксис
is_real(mixed $value): bool$value— переменная для проверки.- Возвращает —
true, если$valueимеет типfloat, иначеfalse.
Примечание: функция проверяет только тип. Числовая строка вроде "3.14" имеет тип string, а не float, поэтому функция вернёт false. Если нужно принимать и числовые строки, используйте is_numeric().
Пример: как работает is_real()
<?php
$float = 3.14;
$whole = 2.0; // still a float, despite the round value
$integer = 5;
$text = "3.14"; // a numeric string, not a float
var_dump(is_real($float)); // bool(true)
var_dump(is_real($whole)); // bool(true)
var_dump(is_real($integer)); // bool(false) — this is an int
var_dump(is_real($text)); // bool(false) — this is a string
?>2.0 является числом с плавающей точкой, несмотря на то что его значение целое, поэтому проверка проходит. Целое число 5 и строка "3.14" не проходят проверку, потому что is_real() проверяет базовый тип, а не значение.
Будьте осторожны при прямом выводе результата: echo преобразует true в "1", а false — в пустую строку, что может выглядеть так, будто ничего не произошло. Используйте var_dump() при отладке, чтобы видеть true/false явно.
Современный эквивалент
Замена is_real() — это замена один к одному: просто переименуйте вызов:
<?php
$price = 19.99;
if (is_float($price)) {
echo "It's a float.";
} else {
echo "Not a float.";
}
// Output: It's a float.
?>Если вы поддерживаете код, который должен работать на PHP 8, но по-прежнему ссылается на is_real(), безопасный шим выглядит так:
<?php
if (!function_exists('is_real')) {
function is_real($value): bool {
return is_float($value);
}
}
?>Связанные функции проверки типов
PHP предоставляет семейство функций is_* для проверки типов во время выполнения:
is_float()— актуальное название; используйте его вместоis_real().is_int()— проверяет целые числа.is_string()— проверяет строки.is_numeric()—trueдля чисел и числовых строк.gettype()— возвращает имя типа в виде строки.
Заключение
is_real() был псевдонимом is_float() и больше не доступен начиная с PHP 8.0. Функция проверяет, является ли значение типом float, возвращая true или false. В новом коде всегда используйте is_float() напрямую; обращайтесь к is_numeric(), если числовые строки также должны учитываться.