is_iterable

(PHP 7 >= 7.1.0, PHP 8)

is_iterableDeğişkenin değerinin yinelenebilirliğine bakar

Açıklama

is_iterable(mixed $değer): bool

Belirtilen değişken değerinin iterable sözde türünde, bir array veya Traversable sınıfını gerçekleyen bir nesne olup olmadığına bakar.

Bağımsız Değişkenler

değer

Sınanacak değer.

Dönen Değerler

değer yinelenebiliyorsa true, yoksa false döner.

Örnekler

Örnek 1 - is_iterable() örnekleri

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

?>

Ayrıca Bakınız

  • is_array() - Değişkenin bir dizi içerip içermediğine bakar

add a note add a note

User Contributed Notes 3 notes

up
26
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.
up
-13
brcontainer at yahoo dot com dot br
6 years ago
Polyfill for PHP5.6 and PHP7.0

    if (!file_exists('is_iterable')) {
        function is_iterable($obj)
        {
            return is_array($obj) || $obj instanceof \Traversable;
        }
    }
To Top