Php - пустой объект ArrayObject


Класс ArrayObject позволяет объектам работать как массивы. Когда я проверяю, является ли ArrayObject пустым, результат всегда ложен

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

Не было бы более согласованным с поведением пустого массива [], если бы он возвращал true?

Author: marcosh, 2016-06-29

1 answers

PHP ArrayObject не взаимозаменяем с массивами. Большинство функций, связанных с массивами, не будут работать с ним.

В empty() конструкция только определяет, является ли данное значение фальшивый ( игнорируя при этом ошибки неопределенной переменной/индекса). Экземпляр ArrayObject вычисляется как true, когда он преобразуется в логическое значение.

Это будет работать как для массивов, так и для ArrayObject (поскольку они реализуют Countable):

if (!sizeof($variable)) {
    // $variable is an empty array or empty ArrayObject
}

( На мой взгляд, это хороший вещь. PHP определенно не нуждается в большем количестве магии.)

 6
Author: ShiraNai7, 2016-06-29 15:26:49