Как определить, является ли неправильно построенный объект пустым в PHP - PullRequest
4 голосов
/ 18 июня 2011

Я работаю с объектом, полученным из класса. По какой-то причине класс выплевывает объект с пронумерованными свойствами (0, 1, 2 и т. Д.). Мне нужно проверить, если объект пуст. Стандартный трюк, empty(get_object_vars($obj)), не сработает, потому что get_object_vars возвращает пустой массив, даже когда объект имеет (пронумерованные) свойства.

Для справки: объект, с которым я работаю, - это объект, возвращаемый методом законодательству ZipCode интерфейса PHP для API Sunlight. Вы можете увидеть print_r образца ответа здесь .

Ответы [ 2 ]

4 голосов
/ 18 июня 2011

Судя по коду, автор допустил ошибку приведения численно индексированного массива к объекту. Это делает невозможным получение свойств объекта по имени, хотя вы все равно должны иметь возможность foreach поверх него. Вы также можете просто привести его обратно к массиву: $results = (array) $obj;. Затем count массив.

0 голосов
/ 19 июня 2011

Это похоже на работу:

if (current($obj) === false)
  echo "is empty\n";

Вероятно, выполняется неявное приведение к массиву.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...