• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • is_iterable()

    (PHP 7 >= 7.1.0)

    Verify that the contents of a variable is an iterable value

    说明

    is_iterable(mixed $var): bool

    Verify that the contents of a variable is accepted by theiterablepseudo-type, i.e. that it is either anarrayor an object implementingTraversable

    参数

    $var

    The value to check

    返回值

    ReturnsTRUEif$varis iterable,FALSEotherwise.

    范例

    Example #1is_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)
    ?>
    

    参见

    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.
    Here is more details on iterable type: http://php.net/manual/en/language.types.iterable.php
    Polyfill for PHP5.6 and PHP7.0
      if (!file_exists('is_iterable')) {
        function is_iterable($obj)
        {
          return is_array($obj) || $obj instanceof \Traversable;
        }
      }

    上篇:is_integer()

    下篇:is_long()