2012-04-19 258 views
6

可能重複:
Casing an Array with Numeric Keys as an ObjectPHP鑄造數組對象

我從陣列鑄造反對,我很困惑:

$arr = range(1,3); 
$obj = (object) $arr; 
var_dump($obj) 

object(stdClass)#2 (5) { 
    [0]=> 
    int(1) 
    [1]=> 
    int(2) 
    [2]=> 
    int(3) 
} 

的問題是:在這種情況下如何訪問對象屬性? $obj->0導致語法錯誤。

+0

想必'$ OBJ - > {0}'失敗呢? – halfer 2012-04-19 21:04:36

回答

4

除非您轉回陣列,否則無法訪問這些對象屬性。期。如果出於某種原因必須這樣做,請將數組鍵設置爲其他值。

2

在這種情況下,我能想到的唯一的事情就是使用foreach這樣的訪問屬性:

foreach($obj as $key => $value) 
    var_dump("$key => $value"); 

當然,但這不會解決問題的基礎。

+0

好的,那不是我的問題 - 我只是想知道。然而,我再次認定PHP很奇怪。對不起,重複! – biera 2012-04-19 21:08:43

1

看來,ArrayObject的類可以訪問屬性

$a = new ArrayObject($obj); 
echo $a[0];