2016-01-30 2 views
3

В переменной $order->items У меня есть выход ниже. Я удалил содержимое массивов, чтобы упростить просмотр.Количество массивов внутри объекта/защищено

Как подсчитать массивы? Пример будет выводиться 3.

Я не знаком с объектами и защищенными элементами.

Store\Model\Collection Object ([items:protected] => 

Array ( 

    [0] => Store\Model\OrderItem Object (...) 

    [1] => Store\Model\OrderItem Object (...) 

    [2] => Store\Model\OrderItem Object (...) 

) 

ответ

2

Если класс реализует Store\Model\CollectionCountable интерфейс, вы можете просто получить рассчитывать через count($object);.

В противном случае добавьте метод, который возвращает размер массива

class Store\Model\Collection 
{ 
    protected $items; 
    .... 
    public function getItemsCount() 
    { 
     return count($this->items); 
    } 
} 

и использовать его в качестве приложения

$object->getItemsCount(); 
0

Вы не можете получить доступ непосредственно к защищенным атрибутам объекта. Вы должны добавить в свой класс Store \ Model \ Collection функцию, чтобы получить ваш массив или функцию для подсчета элементов в вашем массиве.

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

Смежные вопросы