Как получить доступ к свойству переменной, если сложные свойства - PullRequest
0 голосов
/ 30 сентября 2018

Как получить доступ к свойству данных этого типа: ниже данные находятся в переменной $ live.

    $live =  =array:17 [▼
        "sensex" => {#1130 ▼
        +"code": "200"
        +"message": "Success"
        +"data": {#1131 ▼
            +"HIGH": "36551.86"
        }
      }
         "nifty_50" => {#1132 ▶}
         "nasdaq" => {#1134 ▶}

Я пытаюсь получить доступ к значению свойства 'HIGH' для переменной $live в php.Я пытался с приведенным ниже кодом, но он дает мне ошибку:

$live->sensex->data;

Ошибка:

Попытка получить свойство 'sensex' не-объекта

РЕДАКТИРОВАНИЕ:

Я пытаюсь получить доступ к этим структурированным данным, которые $live,

$data =
    {#1139 ▼
        +"chart": {#1138 ▼
            +"result": array:1 [▼
                0 => {#1135 ▼
                    +"meta": {#1129 ▶}
                    +"timestamp": array:195 [▶]
                    +"indicators": {#1137 ▼
                        +"quote": array:1 [▼
                            0 => {#1136 ▼
                                +"open": array:195 [▶]
                                +"close": array:195 [▶]
                                +"high": array:195 [▶]
                                +"volume": array:195 [▶]
                                +"low": array:195 [▶]
                           }
                       ]
                    }
                }
            ]
            +"error": null
        }
    }

Сейчас Как получить доступ +"open": array:195 напрямую?

Ответы [ 4 ]

0 голосов
/ 30 сентября 2018

Здесь $live - массив.На самом деле, это ассоциативный массив.«sensex» - это класс.Синтаксис для получения значения из ассоциативного массива:

$var_name["key_name"];

Для класса Std синтаксис:

$class_name->proparty_name

Но мы можем получить значение proparty из класса Std, используя синтаксис ассоциативного массива.Так.

$class_name["proparty_name"] is also Valid.

Так что для вашего случая вы можете использовать оба:

$live["sensex"]->data->HIGH
$live["sensex"]["data"]->HIGH
$live["sensex"]["data"]["HIGH"]
0 голосов
/ 30 сентября 2018

Вам необходимо использовать синтаксис Array

$live['sensex']->data;
0 голосов
/ 30 сентября 2018

для доступа к index массива вам нужно использовать ['particular_index_name'].

для доступа к property из object вам нужно использовать ->particular_property_name.

в вашем случае $live - это array, sensex - это объект, а data также является объектом.

так.чтобы получить доступ к значению HIGH

$live['sensex']->data->HIGH;
0 голосов
/ 30 сентября 2018

Это выглядит как ассоциативный массив, тогда вы получите значение по:

$live["sensex"] // etc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...