【问题标题】:Check for iterable content PHP检查可迭代内容 PHP
【发布时间】:2017-09-29 22:22:25
【问题描述】:

对于 PHP >= 7.1,可以使用is_iterable() 检测变量是否可迭代。

对于 PHP

由于我正在使用 php 7.0,我该如何执行此操作?

【问题讨论】:

标签: php types iterator


【解决方案1】:

您只需要测试给定的 var 是 Traversable 类型还是数组。其他一切都不可迭代。

if (!function_exists('is_iterable')) {
    function is_iterable($var)
    {
        return is_array($var) || $var instanceof \Traversable;
    }
}

【讨论】:

  • 在 'if (!function_exists('is_iterable')) { ... }' 中覆盖这个函数,以保证未来的安全。没有人知道提供者或其他人是否在更新 php 版本。
  • stdClass 类的对象是可迭代的,但不是Traversable 的数组或实例。
  • @StevenJeffries is_iterable(new stdclass) 在 php 7.2 中返回 false
猜你喜欢
  • 1970-01-01
  • 2011-05-31
  • 2015-12-05
  • 2013-09-23
  • 2020-10-10
  • 2012-12-29
  • 2020-08-09
  • 1970-01-01
  • 2014-07-28
相关资源
最近更新 更多