Как получить доступ к ключу защищенного массива со знаком доллара внутри объекта (ответ от RTM-php)?

При использовании библиотеки php для RTM (https://github.com/bartosz-maciaszek/php-rtm), Я получаю ответ для определенного списка задач, например:

[notes] => Rtm\DataContainer Object

(
[attributes:Rtm\DataContainer:private] => Array
(
[note] => Rtm\DataContainer Object
(
[attributes:Rtm\DataContainer:private] => Array
(
[id] => 56254802
[created] => 2016-11-06T10:46:43Z
[modified] => 2016-11-06T10:49:26Z
[title] => null
[$t] => https://stackoverflow.com/questions/910912/extract-urls-from-text-in-php1
)

)

)

)

Я могу получить значение id, created, modified просто отлично но $t не работает

$note_obj = $obj->getNotes()->getNote();
$note_id = $note_obj->getId();
echo "$note_id\n";  //works fine

$note_content = $note_obj->get{'$t'}(); //doesn't work
print_r($note_content);

очевидно $note_obj->get{'$t'}; здесь не получается ….. Так как мне получить доступ к таким данным?

2

Решение

Я обнаружил, что все методы классов обрабатываются DataContainer.php у которого есть метод как toArray преобразовать объект в массив.

Эти методы также могут быть представлены (как указано @Dekel в комментарии):

var_dump(get_class_methods($note_obj)); дает

array(10) {
[0]=>
string(11) "__construct"[1]=>
string(11) "getIterator"[2]=>
string(5) "count"[3]=>
string(6) "__call"[4]=>
string(3) "get"[5]=>
string(3) "set"[6]=>
string(3) "has"[7]=>
string(6) "remove"[8]=>
string(7) "toArray"[9]=>
string(6) "toJson"}

И, следовательно, код:

$note_obj = $obj->getNotes()->getNote();
$rtm_item_note_content = $note_obj->toArray();
$rtm_item_note_content = $rtm_item_note_content['$t'];
echo "note content: $rtm_item_note_content\n";

Готово!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]