6

重複の可能性:
数値キーを持つ配列をオブジェクトとしてケースに入れる

配列からオブジェクトへのキャストを作成しましたが、混乱しています:

$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構文エラーが発生します。

4

3 に答える 3

4

配列にキャストバックしない限り、これらのオブジェクト プロパティにアクセスすることはできません。限目。何らかの理由でこれを行う必要がある場合は、配列キーを別のものに設定してください。

于 2012-04-19T20:56:56.817 に答える
2

この場合、私が考えることができる唯一のことは、次のforeachようなものを使用してプロパティにアクセスすることです。

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

しかしもちろん、これは基本的な問題を解決しません。

于 2012-04-19T20:52:53.613 に答える
1

ArrayObjectクラスがプロパティにアクセスできるようです

$a = new ArrayObject($obj);
echo $a[0];
于 2012-04-19T21:00:44.100 に答える