4

该类ArrayObject允许对象作为数组工作。但是,当我检查 anArrayObject是否为空时,结果总是错误的

echo empty(new ArrayObject()); // returns false

[]如果它返回,它不会与空数组的行为更加一致true吗?

4

1 回答 1

11

PHPArrayObject不能与数组互换。大多数与数组相关的函数都不适用于它。

empty()构造仅确定给定值是否为(同时忽略未定义的变量/索引错误)。一个实例在它被强制转换为布尔值时ArrayObject评估为。true

这对数组和ArrayObjects 都有效(因为它们实现了Countable):

if (!count($variable)) {
    // $variable is an empty array or empty ArrayObject
}
于 2016-06-29T15:26:49.523 回答