PHP: Считайте объект stdClass

IntelliSense, интегрированный отладчик и непосредственное окно делают меня чрезвычайно более продуктивным ( Visual  Studio  2008 ). Со всем в моих кончиках пальцев я могу сохранить подавляющее большинство огромного проекта в моей голове в то время как написание кода. Microsoft может продолжать допускать ошибку в их OSs, но Visual Studio является одним из самых прекрасных продуктов, когда-либо разработанных.

108
задан Alan Storm 31 January 2018 в 22:20
поделиться

4 ответа

Проблема в том, что count предназначен для подсчета индексов в массиве, а не свойств объекта (если это не пользовательский объект, реализующий интерфейс Countable). Попробуйте преобразовать объект, как показано ниже, в виде массива и посмотрите, поможет ли это.

$total = count((array)$obj);

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

225
ответ дан 24 November 2019 в 03:26
поделиться

У объекта нет 30 свойств. У него есть один, который представляет собой массив из 30 элементов. Вам нужно количество элементов в этом массиве.

8
ответ дан 24 November 2019 в 03:26
поделиться

Функция count предназначена для использования с

  1. Arrays
  2. Объектами, которые являются производными от классов, реализующих счетный интерфейс

StdClass не является ни одним из них. Самый простой / быстрый способ выполнить то, что вам нужно, -

$count = count(get_object_vars($some_std_class_object));

. Здесь используется функция PHP get_object_vars , которая возвращает свойства объекта в виде массива. Затем вы можете использовать этот массив с функцией подсчета PHP.

106
ответ дан 24 November 2019 в 03:26
поделиться

Здесь нет ничего плохого в count (), «тенденции» - единственный ключ, который подсчитывается в этом случае, вы можете попробовать:

count($obj->trends);

Или:

count($obj->trends['2009-08-21 11:05']);

Или, может быть, даже выполняя:

count($obj, COUNT_RECURSIVE);
5
ответ дан 24 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: