Функции is_int(), is_string() и другие

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Если функция `gettype()` отвечает на вопрос "Что это?", то семейство функций `is_*` (например, `is_int()`, `is_string()`) отвечает на вопрос "Да или нет?". Они проверяют, соответствует ли переменная определённому типу, и возвращают логическое значение: `true` (да) или `false` (нет).

Такой подход гораздо удобнее для написания условий в коде. Вместо того чтобы писать `if (gettype($var) == "integer")`, можно просто написать `if (is_int($var))`. Это короче и понятнее. В этом тренажере ты научишься пользоваться основными функциями `is_*`, поймешь разницу между строгой проверкой типа (например, `is_int()`) и проверкой на числовое значение (`is_numeric()`), а также разберешься с некоторыми тонкостями их работы.

Список тем

Проверка на целое число

id: 38921_task_is_func_1

В PHP есть семейство функций `is_*`, которые проверяют тип переменной и возвращают `true` или `false`. Вставьте правильное название функции для проверки, является ли переменная `$quantity` целым числом.

Заполните пропуски
<?php
$quantity = 10; // Количество товаров
if (input1S($quantity)) {
    echo "Количество указано верно.";
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет echo?

id: 38921_task_is_func_2

Функции `is_*` возвращают логическое значение `true` или `false`. Однако при выводе с помощью `echo` эти значения преобразуются. Впишите то, что по вашему мнению появится на экране в результате выполнения этого кода.

Что должно получиться?
<?php
$username = "Alex";
echo is_string($username);
?>
Сообщения
Проверить
Показать подсказку

Строгая проверка is_int()

id: 38921_task_is_func_3

Функции `is_*` выполняют строгую проверку типа. Они не пытаются угадать, что вы имели в виду. Что вернет `var_dump()` для переменной, которая содержит строку с числом?

Выберите правильный вариант ответа
<?php
$page_number = "5";
var_dump(is_int($page_number));
?>
Сообщения
Проверить
Показать подсказку

is_int() vs is_numeric()

id: 38921_task_is_func_4

Часто данные приходят из форм в виде строк, даже если это числа. В коде используется `is_int()`, которая не подходит для строки "25", из-за чего проверка не проходит. Исправьте одну строку, заменив функцию на более подходящую, которая проверяет, является ли значение числом или числовой строкой.

Найдите ошибку и исправьте
<?php
$age_from_form = "25";
 
if (is_int($age_from_form)) {
    echo "Возраст подтвержден.";
} else {
    echo "Неверный формат возраста.";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сопоставьте функцию и её назначение

id: 38921_task_is_func_5

В PHP много полезных `is_*` функций. Сопоставьте названия функций из правой колонки с их описанием в левой, чтобы получились верные утверждения.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Проверяет, является ли переменная массивом
Проверяет, является ли переменная логическим значением
Проверяет, является ли переменная значением NULL
Проверяет, является ли переменная числом с плавающей точкой
is_bool()
is_null()
is_array()
is_float()
Сообщения
Проверить
Показать подсказку

Распределите значения по типам

id: 38921_task_is_func_6

Перед вами несколько значений. Распределите их по категориям в зависимости от того, какая из функций (`is_int`, `is_string` или `is_bool`) вернет для них `true`.

Перетяните элементы в соответствующие блоки
is_int() вернет true
is_string() вернет true
is_bool() вернет true
42
"Hello"
true
-100
false
"true"
"100"
Сообщения
Проверить
Показать подсказку

Проверка на "НЕ boolean"

id: 38921_task_is_func_7

Иногда нужно выполнить действие, если переменная НЕ является определенным типом. Используя элементы из "банка", составьте условие, которое будет истинным, если `$value` не является логическим типом (`true` или `false`).

Нужно правильно расставить в пропуски предложенные варианты
<?php
$value = 0;

// Проверяем, что $value - это не логический тип
if (input1S input2S($value)) {
    echo "Это НЕ boolean.";
}
?>
!
is_bool
is_numeric
==
true
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Соберите код для проверки массива

id: 38921_task_is_func_8

Соберите из фрагментов работающий скрипт, который проверяет, является ли переменная `$items` массивом, и выводит сообщение "Это массив.". Будьте внимательны, некоторые фрагменты лишние и приведут к ошибке.

Перетяните в правильном порядке строки из одного блока в другой
<?php
$items = [ 'apple', 'banana' ];
if (is_array($items)) {
echo "Это массив.";
}
?>
if (is_string($items)) {
echo "Это строка.";
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру