2012-02-22 215 views
1

嗨,我似乎無法得到語法正確的在這裏,我只是想看看是否存在類型, 我已經試過訪問嵌套對象數組

if($obj->type) /* do something */ 
if($obj[0]->type) /* do something */ 
if($obj->type[0]) /* do something */ 

在此

stdClass::__set_state(
array(
    '0' => 
    stdClass::__set_state(
    array(
    'report_number' => '555', 
    'type' => 'citrus', 
    'region' => 'Seattle', 
    'customer_number' => '9757', 
    'customer' => 'The Name', 
    'location' => 'West Seattle, WA', 
    'shipper' => 'Yamato Transport', 
    'po' => '33215', 
    'commodity' => 'RARE', 
    'label' => 'PRODUCE', 
)), 
)) 

但似乎無法得到它的權利,我相信它是與 [0]是一個int,而不是爲varchar,但我不知道....

+0

'$ OBJ [0] [ '型']'? – 2012-02-22 18:18:32

+0

你試過'$ obj-> 0-> type'嗎? – rodneyrehm 2012-02-22 18:18:52

+0

我只是猜測,但我會想到$ obj [0] ['type'] - 你試過這個嗎? – 2012-02-22 18:21:27

回答

7

輸出在問題由var_export創建,它將對象的數據表示爲array。但不要因此誤導,它實際上是一個對象。

對象屬性是由這句法訪問:

$obj->property 

在你的情況下,屬性名爲0這是很難的PHP在明碼處理,因爲它不是你可以寫一個屬性名稱,馬上像這樣的:

$obj->0 

相反,你需要通過封閉它告訴PHP解析器的名稱是到{}

$obj->{0} 

然後,您可以遍歷進一步對訪問的0type屬性:

$obj->{0}->type 

希望這是有幫助的,問題來了,不時,這是一個相關的一個具有更多相關鏈接:How do I access this object property?

PHP手冊中有這個記錄,但在Variable variables entry不是很明顯:

爲了使用可變的變量與數組,必須解決一個模棱兩可的問題。也就是說,如果你編寫$$a[1],那麼解析器需要知道你是否打算使用$a[1]作爲變量,或者如果你想要$$a作爲變量,然後是該變量的[1]索引。爲解決這種模糊性的語法是:${$a[1]}對於所述第一殼體和${$a}[1]用於第二。

0

你試過:

<?php 
    if (property_exists($obj, 'type')) { 
     // Do something 
    } 
?>