Доступ к массиву в объекте PHP - PullRequest
0 голосов
/ 26 сентября 2010

У меня есть следующий объект PHP, но я изо всех сил пытаюсь получить элемент массива из объекта.

exampleBatch Object (
[file_path:protected] => 
[title:protected] => 
[description:protected] => 
[link:protected] => 
[items:protected] => Array ( ) 
[raw:protected] => data/example 
[feed_nid:protected] => 
Array ( 
    [0] => Array ( [path] => data/example/example/ [filename] => file.csv ) 
    [1] => Array ( [path] => data/example/example/ [filename] => file.csv ) 
    [2] => Array ( [path] => dexampleata/example// [filename] => file.csv ) ) 
[current_item:protected] => 
[created] => 0 
[updated] => 0 
[total:protected] => Array ( ) 
[progress:protected] => Array ( [fetching] => 1 [parsing] => 1 [processing] => 1 ) )

Мне нужен доступ к массиву, содержащему три ключа и его данные для некоторой постобработки.

Как лучше всего захватить массив?

Ответы [ 2 ]

10 голосов
/ 26 сентября 2010

Если вы можете редактировать класс, либо измените свойство, которое вам нужно, на public, либо напишите для него геттер:

function getItems() {
    return $this->items ;
}

В противном случае, если вы не можете редактировать сам класс, вы можете расширить егопоскольку свойства, которые вы хотите, защищены, это означает, что дочерний класс может получить к ним доступ:

class YourClass extends ThatClass {

    public function getItems {
        //parent $items really
        return $this->items ;
    }

}

Затем вам нужно будет создать экземпляр YourClass вместо ThatClass и получить из него массив items.

Аналогично для любых других защищенных свойств, которые вы хотите.

3 голосов
/ 26 сентября 2010

Свойство feed_nid вашего объекта защищено, поэтому к нему нельзя получить доступ снаружи объекта.

Внутри класса объекта вы должны написать такую ​​функцию:

function getFeedNid()
{
    return $this->feed_nid;
}

Первоначально предполагалось, что это свойство будет внутренним и защищенным от внешних изменений, поэтому я бы использовал этот метод вместо, например, изменения объявления protected $feed_nid на public.

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