Php - пустой объект ArrayObject
Класс ArrayObject
позволяет объектам работать как массивы. Когда я проверяю, является ли ArrayObject
пустым, результат всегда ложен
echo empty(new ArrayObject()); // returns false
Не было бы более согласованным с поведением пустого массива []
, если бы он возвращал true
?
1 answers
PHP ArrayObject
не взаимозаменяем с массивами. Большинство функций, связанных с массивами, не будут работать с ним.
В empty()
конструкция только определяет, является ли данное значение фальшивый ( игнорируя при этом ошибки неопределенной переменной/индекса). Экземпляр ArrayObject
вычисляется как true
, когда он преобразуется в логическое значение.
Это будет работать как для массивов, так и для ArrayObject
(поскольку они реализуют Countable
):
if (!sizeof($variable)) {
// $variable is an empty array or empty ArrayObject
}
( На мой взгляд, это хороший вещь. PHP определенно не нуждается в большем количестве магии.)