3

配列に変換されてからオブジェクトに変換された値を取得したい。

$input = (object)(array) 123;
var_dump($input);

これは以下を出力します:

object(stdClass)#1 (1) {
  [0]=>
  int(123)
}

値123を取得するにはどうすればよい$inputですか?

4

2 に答える 2

5

https://bugs.php.net/bug.php?id=45959

残念ながら、これは既知の問題であり、対処することはできません。

外部ソースからのこのタイプのオブジェクトで立ち往生している場合、最善の策はそれを配列にキャストして値を取得することです。

$input = (object)(array) 123;
$array = (array) $input;
echo $array[0];
于 2012-05-24T12:00:46.740 に答える
1

このコードを試してください:

<pre><?php
$input = (object)(array) 123;

$reflection = new ReflectionObject($input);
var_dump($reflection->hasProperty('0'));
?></pre>

これにより、値は に表示さvar_dump($input)れますが、プロパティとは見なされないことがわかります。を要求してもgetProperties()、何も出力されません。

また.. なぜこの種の嫌悪感が必要だと思うのですか?SO に、誤って定義された問題に対する壊れたソリューションのバグ修正をパッチするように依頼しているようです。

于 2012-05-24T12:11:06.637 に答える