小编Bjö*_*tau的帖子

为什么对象被认为是不可迭代的,尽管它们实际上是可迭代的?

PHP 7.1 添加了新的is_iterable函数来检查变量是否可以迭代。但是,尽管您可以迭代对象属性is_iterable,但它们的属性返回 false。

这似乎是故意的,因为它被记录在案,我找不到任何关于该问题的 PHP 错误,但我想知道为什么要这样做?

<?php
$a = new stdClass();
$a->foo = 'bar';

var_dump(is_iterable($a));

foreach ($a as $key => $value) {
    var_dump($key, $value);
}
Run Code Online (Sandbox Code Playgroud)

输出

boolean false
string 'foo' (length=3)
string 'bar' (length=3)
Run Code Online (Sandbox Code Playgroud)

但我希望它输出

boolean true
string 'foo' (length=3)
string 'bar' (length=3)
Run Code Online (Sandbox Code Playgroud)

php iterator

5
推荐指数
1
解决办法
533
查看次数

标签 统计

iterator ×1

php ×1