is_iterable
(PHP 7 >= 7.1.0, PHP 8)
is_iterable — 変数の内容が反復可能な値であることを確認する
説明
変数の内容が iterable 疑似型で許容されること、すなわち array、あるいは Traversable のどちらかを実装したオブジェクトであることを確認する。
パラメータ
value
-
チェックする値
例
例1 is_iterable() の例
<?php
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)
?>
+add a note
User Contributed Notes 2 notes
mopsyd at me dot com ¶
6 years ago
A slight correction to brcontainer's polyfill, which prevents errors on a non-object in a non-blocking way, and also corrects the issue of the conditional checking "file_exists" instead of the correct "function_exists":
if ( !function_exists( 'is_iterable' ) )
{
function is_iterable( $obj )
{
return is_array( $obj ) || ( is_object( $obj ) && ( $obj instanceof \Traversable ) );
}
}
The original answer would not have resolved correctly, because it was looking for a file instead of a function, and the provided method would error if given a non-iterable non-object value such as false.
anatoly dot pashin at gmail dot com ¶
6 years ago
Here is more details on iterable type: http://php.net/manual/en/language.types.iterable.php
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google