如何从php中转换为数组的Object中检索值?

时间:2012-05-24 11:52:24

标签: php arrays

我想检索转换为数组的值,然后检索对象..

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

输出:

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

如何从$input检索值123?

2 个答案:

答案 0 :(得分:5)

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

不幸的是,这是一个众所周知的问题,你无能为力。

如果您从外部来源遇到此类型的对象,最好的选择是将其转换回数组以获取值:

$input = (object)(array) 123;
$array = (array) $input;
echo $array[0];

答案 1 :(得分:1)

试试这段代码:

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

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

这将告诉您,虽然您仍然可以在var_dump($input)中看到值,但不会将其视为属性。如果你要求getProperties(),你根本就得不到输出。

另外..为什么你认为你需要这种憎恶?好像你要求你修补一个错误定义的问题的破解解决方案。