2010-04-17 1 views
1

Хорошо. Теперь я сдаюсь. Я играю с этим часами.Как получить доступ к членам этих данных в PHP?

  • У меня есть переменное имя $data.
  • переменные содержит следующее содержание: (извлеченное с помощью var_export())

    array (
        'headers' => 
        array (
        'content-type' => 'multipart/alternative; boundary="_689e1a7d-7a0a-442a-bd6c-a1fb1dc2993e_"', 
    ), 
        'ctype_parameters' => 
        array (
        'boundary' => '_689e1a7d-7a0a-442a-bd6c-a1fb1dc2993e_', 
    ), 
        'parts' => 
        array (
        0 => 
        stdClass::__set_state(array(
         'headers' => 
         array (
         'content-type' => 'text/plain; charset="iso-8859-1"', 
         'content-transfer-encoding' => 'quoted-printable', 
        ), 
         'ctype_primary' => 'text', 
        )), 
    ), 
    ) 
    

    я удален некоторых несущественных данные.

  • Я хочу, чтобы получить доступ к значению заголовков (на второй строке выше) - проста: $data->headers
  • Я хочу, чтобы получить доступ к значению заголовков (на четырнадцатой строке после stdClass:: материала) - как?

Как я могу получить доступ к значениям в разделе stdClass::__set_state?

Я попытался var_export($data->parts);, но все это я получаю

NULL

+0

Я тоже сдаюсь. Бросьте код. –

+0

Брось все! Это безумие, которое я вам скажу, безумие! _Seriously хотя ..._ –

ответ

3

Является ли эта переменная объявлена ​​, как вы отправили это? Как:

$data = array(
      'headers' => 
      array (
      … 

В этом случае, я не совсем уверен, как вы можете получить доступ к 'headers' через $data->headers. Он должен быть $data['headers'], потому что это массив, а не объект.

Далее вниз, stdClass::__set_state(array('headers' => …))статически вызывает метод__set_state класса stdClass. Независимо от этого метода я не знаю, но только его возвращаемое значение будет присвоено ключу 'parts' => array(0 => ...).

Если OTOH то, что вы показываете результат var_dump($data), то это неправильно нонсенс, поскольку stdClass::__set_state() никогда бы не появляться в var_dump. Что-то подозрительно в коде или в том, что вы разместили, и это трудно сказать, не видя больше этого.

Пренебрежение вышеизложенным, var_export печатает классы этого фанкового способа.

$data['headers'] должен сделать это для первой части заголовков. Дальше вниз, $data['parts'][0]->headers должен сделать трюк.

+0

Прежде всего, 'var_export' _not_' var_dump'. Во-вторых, данные не объявлены, я получаю их из сторонней библиотеки. В-третьих, я смущен :( –

+0

Хорошие новости! Я только заметил, что вы были правы - я обращаюсь к данным как '$ data-> member' вместо' $ data ['member'] '- глупо мне! Это помогло мне Решите проблему +1 и лучший ответ для вас! –

+0

Я не знал классов, напечатанных таким образом, 'var_export'. Узнал что-то. :) – deceze