2009-08-16 75 views
0

如果我有一個數組作爲屬性的對象,訪問它的最簡單方法是什麼?PHP:數組作爲屬性

$obj->odp = array("ftw", "pwn", array("cool" => 1337)); 

//access "ftw" 
$obj->odp->0 

//access 1337 
$obj->odp->2->cool 

這似乎並不奏效。有什麼我做錯了,還是我必須先將它分配給一個變量?

$arr = $obj->odp; 

//access "ftw" 
$arr[0] 

//access 1337 
$arr[2]["cool"] 

回答

4

陣列只能與陣列語法($array['key'])來訪問和僅與對象語法($object->property)對象。

僅使用爲對象的對象語法和數組語法只對陣列:

$obj->odp[0] 
$obj->odp[2]['cool'] 
+0

你確定可以用數組語法訪問對象嗎?我試圖這樣做,並得到此錯誤: 致命錯誤:不能使用stdClass類型的對象作爲數組在C:\ xampp \ htdocs \ CUMF3 \ sites \ all \ modules \ results \ results.module在80行 –

+0

@Rosarch:是的,你說得對。 – Gumbo

0

像這樣做:

$obj->odp[0]['cool'] 
0

$obj->odp是一個數組,所以$obj->odp[0]讀取「FTW」。沒有像$obj->odp->0這樣的東西。