W3docs

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(), если числовые строки также должны учитываться.

Практика

Практика
Что делает функция is_real() в PHP?
Что делает функция is_real() в PHP?
Was this page helpful?