
Reg.ru: домены и хостинг
Крупнейший регистратор и хостинг-провайдер в России.
Более 2 миллионов доменных имен на обслуживании.
Продвижение, почта для домена, решения для бизнеса.
Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Бесплатный Курс "Практика HTML5 и CSS3"
Освойте бесплатно пошаговый видеокурс
по основам адаптивной верстки
на HTML5 и CSS3 с полного нуля.

Фреймворк Bootstrap: быстрая адаптивная вёрстка
Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.
Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.
Верстайте на заказ и получайте деньги.
*Наведите курсор мыши для приостановки прокрутки.
Проверка значения переменной в PHP
При разработке скриптов и веб-приложений достаточно часто требуется проверить, содержит ли некая переменная числовое значение.
Обычно это важно с точки зрения дальнейших операций, которые потом будут проделаны с этой переменной.
При этом стоит отметить, что нередко переменная может иметь тип "строка", но хранить при этом вполне себе числовое значение.
Решением в этом случае будет использование функции is_numeric(). Она возвращает true, если значение проверяемой переменной является числом или строкой, содержащей число, и false - в противном случае.
Давайте рассмотрим ее работу на следующем примере.
// Массив "кандидатов" на проверку $candidates = array(5, '5', '05', 12.3, '16.7', 'пять', 0xDECAFBAD, '10e200'); // Проверяем каждый элемент на предмет того, является // ли он числом или строкой, содержащей число foreach ($candidates as $maybeNumber) { $isItNumeric = is_numeric($maybeNumber); $actualType = gettype($maybeNumber); echo "Является ли $actualType $maybeNumber числом? "; if (is_numeric($maybeNumber)) { echo "Да"; } else { echo "Нет"; } echo "
"; }
Поскольку разнообразие чисел огромно, мы не может считать, что некое значение является числом просто потому, что оно состоит из символов от 0 до 9.
Что делать с точкой (разделителем дробной части) или знаком "минус"? Их нельзя просто включить в набор проверяемых символов, потому что минус может располагаться только в начале числа, а точка может быть только одна.
А ведь еще есть шестнадцатеричные числа и вариант экспоненциальной (научной) записи чисел.
Все эти варианты прекрасно предусматривает PHP-функция is_numeric().
Важно, что она не только определяет, содержит ли переменная данные, являющиеся числом, но и проверяет, возможно ли эти данные преобразовать в число.
Разумеется, формально число 5 и строка 5 с точки зрения PHP различаются. Однако обычно эти различия для нас совершенно несущественны, поэтому функция is_numeric() все же приносит пользу.
Данная функция умеет распознавать дробные числа (например, 5.1) и возвращать true, однако для чисел с разделителями групп разрядов (например, 5,100) она вернет значение false.
Чтобы убрать разделители групп разрядов из числа перед вызовом is_numeric(), воспользуйтесь функцией str_replace().
$number = "5,100"; // Этот вызов is_numeric() возвращает false $withCommas = is_numeric($number); // Этот вызов is_numeric() возвращает true $withoutCommas = is_numeric(str_replace(',', '', $number));
Если же вы хотите узнать, относится ли число к конкретному числовому типу, используйте следующие функции с "говорящими" именами: is_float() (или is_double(), или is_real(); это одно и то же) и is_int() (или is_integer(), или is_long()).
В действительности, числовые данные бывают и других форматов: положительные, отрицательные, дробные числа и др., но это уже тема другой заметки, и мы обязательно вернемся к этому моменту.
Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!
Смотрите также: