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 回答