Доступ к значениям объекта

1

Извините, если это особенно глупый вопрос, но это поздно, и я немного обойдусь в этом повороте.

У меня есть объект, возвращенный из API, который echo '<pre>';print_r($r);echo '</pre>'; дает:

stdClass Object
(
    [id] => 49
    [submitdate] => 2015-11-05 14:33:16
    [lastpage] => 4
    [startlanguage] => en
    [Qu1[SQ001]] => Fred Bloggs
    [Qu1[SQ003]] => Caretaker
    [Feedback] => Great course, thank you
)

Линия echo '<p>Feedback: '.$r → Feedback.'</p>'; отображает "Великий курс, спасибо", как и ожидалось, но echo '<p>'.$r → Qu1 → SQ001.'</p>'; не показывает "Fred Bloggs", вместо этого я получаю сообщение об ошибке: Notice: Undefined property: stdClass::$Qu1.

Пожалуйста, кто-нибудь скажет мне, что я делаю неправильно?

  • 0
    $yourArray->id
  • 0
    Возможный дубликат php как получить доступ к массиву объектов
Показать ещё 5 комментариев
Теги:

2 ответа

1
Лучший ответ

вы можете сделать это двумя способами (может быть, есть больше, но я знаю только два :))

1)

$obj['a'] = "A";
$obj['b'] = "B";
$obj['c'] = "C";
$obj['get[d]'] = "D";
$obj['get[E]'] = "E";
$obj = (object) $obj;
echo "This is: ".$obj->{'get[d]'}.PHP_EOL;
echo "This is: ".$obj->{'get[E]'}.PHP_EOL;

выйдет

This is: D
This is: E

2)

другое - вы можете получить свойства объекта, используя состояния get_object_vars()

get_object_vars - Получает свойства данного объекта

Так,

$array = get_object_vars($obj); 
echo "This is: ".$array['get[E]']." but getting from array";

DEMO

  • 0
    Спасибо, $r -> {'Qu1[SQ001]'} сработало. Я раньше не сталкивался с этим синтаксисом - можете ли вы указать мне объяснение?
  • 0
    @EssexSteph: не могу найти много объяснений, посмотрите здесь stackoverflow.com/questions/10333016/…
0

Пытаться:

$ r → Qui [SQ001]

Qui выглядит как массив, поэтому $ r → Qui → SQ001 не будет работать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню