2010-04-17 34 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::東西后第14行)訪問頭價值 - 如何?

如何訪問stdClass::__set_state部分中的值?

我試圖var_export($data->parts);,但我得到的是

NULL

+0

我也放棄了。折騰代碼。 – 2010-04-17 03:14:16

+0

折騰一切!我瘋了,我告訴你,瘋了! _儘管如此... _ – 2010-04-17 03:19:21

回答

3

這個變量聲明你張貼的方式嗎?像:

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

在這種情況下,我不太清楚你如何通過$data->headers訪問'headers'。它應該是$data['headers'],因爲它是一個數組,而不是一個對象。

再往下,stdClass::__set_state(array('headers' => …))靜態調用方法的類的stdClass__set_state。不管這種方法我不知道,但只有它的返回值將被分配給'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'。其次,數據沒有被聲明,我從第三方庫中獲取。第三,我很困惑:( – 2010-04-17 03:18:46

+0

好消息!我只是注意到你是對的 - 我正在以'$ data-> member'而不是'$ data ['member']'來訪問數據 - 愚蠢的我!解決問題。+1和你的最佳答案! – 2010-04-17 03:22:47

+0

我不知道用'var_export'這種方式打印的類。學到了東西。:) – deceze 2010-04-17 03:27:21