Функция IS_ITERABLE() в WordPress
Функция is_iterable() была добавлена в PHP 7.1 и сейчас доступна в WordPress с версии 4.9.6. Эта функция позволяет проверить, является ли переданное значение перебираемым (т.е. можно ли по нему пройтись в цикле, как по массиву или объекту, реализующему интерфейс Traversable).
Быстрая информация
- Версия PHP: 7.1.11 и выше
- Версия WordPress: 4.9.8 и выше
- Время выполнения: 1 раз — 0.000001 сек (скорость света), 50000 раз — 0.01 сек (скорость света)
- Возвращаемое значение:
null— ничего (null).
Использование функции
Для проверки, является ли значение перебираемым, можно использовать выражение:
return 0 === $result;
Примеры использования
Вот несколько примеров, как использовать функцию is_iterable():
var_dump( is_iterable([1, 2, 3]) ); // bool(true)
var_dump( is_iterable(new ArrayIterator([1, 2, 3])) ); // bool(true)
var_dump( is_iterable((function () { yield 1; })()) ); // bool(true)
var_dump( is_iterable(1) ); // bool(false)
var_dump( is_iterable(new stdClass()) ); // bool(false)
Объяснение примеров
-
Перебираемые значения:
- Массив
[1, 2, 3]— это массив, поэтому функция возвращаетtrue. ArrayIterator— это объект, который реализует интерфейсTraversable, также возвращаетtrue.- Генератор, созданный с помощью
yield— тоже перебираемое значение, возвращаетtrue.
- Массив
-
Не перебираемые значения:
- Целое число
1— не является ни массивом, ни объектом, возвращаетfalse. - Новый объект класса
stdClass— не перебираемое значение, возвращаетfalse.
- Целое число
Изменения в версии
Функция is_iterable() была представлена с версии 4.9.6 WordPress.
Код функции
Код функции в файле wp-includes/compat.php выглядит следующим образом:
return 0 === $result;
Связанные функции
Существует несколько функций-ползунков, аналогичных is_iterable(). Вот некоторые из них:
array_is_list()array_key_first()array_key_last()is_countable()str_contains()str_ends_with()str_starts_with()
Эти функции могут оказаться полезными при работе с массивами и строками в WordPress.
Заключение
Функция is_iterable() является полезным инструментом для проверки, может ли значение быть перебрано в цикле. Это упрощает обработку данных и помогает избежать ошибок при неправильном использовании. Пользуйтесь этой функцией, чтобы сделать ваш код более "умным" и устойчивым к различным вводам.