IntelliSense, интегрированный отладчик и непосредственное окно делают меня чрезвычайно более продуктивным ( Visual Studio 2008 ). Со всем в моих кончиках пальцев я могу сохранить подавляющее большинство огромного проекта в моей голове в то время как написание кода. Microsoft может продолжать допускать ошибку в их OSs, но Visual Studio является одним из самых прекрасных продуктов, когда-либо разработанных.
Проблема в том, что count предназначен для подсчета индексов в массиве, а не свойств объекта (если это не пользовательский объект, реализующий интерфейс Countable). Попробуйте преобразовать объект, как показано ниже, в виде массива и посмотрите, поможет ли это.
$total = count((array)$obj);
Простое преобразование объекта в виде массива не всегда будет работать, но, будучи простым объектом stdClass, оно должно выполнить свою работу здесь.
У объекта нет 30 свойств. У него есть один, который представляет собой массив из 30 элементов. Вам нужно количество элементов в этом массиве.
Функция count предназначена для использования с
StdClass не является ни одним из них. Самый простой / быстрый способ выполнить то, что вам нужно, -
$count = count(get_object_vars($some_std_class_object));
. Здесь используется функция PHP get_object_vars , которая возвращает свойства объекта в виде массива. Затем вы можете использовать этот массив с функцией подсчета PHP.
Здесь нет ничего плохого в count (), «тенденции» - единственный ключ, который подсчитывается в этом случае, вы можете попробовать:
count($obj->trends);
Или:
count($obj->trends['2009-08-21 11:05']);
Или, может быть, даже выполняя:
count($obj, COUNT_RECURSIVE);