PHP: Hypertext Preprocessor (original) (raw)

is_iterable

(PHP 7 >= 7.1.0, PHP 8)

is_iterable — Verify that the contents of a variable is an iterable value

Description

Parameters

value

The value to check

Return Values

Returns [true](reserved.constants.php#constant.true) if value is iterable, [false](reserved.constants.php#constant.false) otherwise.

Examples

Example #1 is_iterable() examples

`<?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)?>`

See Also

Found A Problem?

mopsyd at me dot com

7 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)∣∣(isobject(obj ) || ( is_object( obj)∣∣(isobject(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.

`