массивы — пустой ArrayObject

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

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

Разве это не было бы более согласованным с поведением пустого массива? [] если он вернулся true?

2

Решение

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

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

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

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

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

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]