我想检索转换为数组然后转换为对象的值..
$input = (object)(array) 123;
var_dump($input);
这输出:
object(stdClass)#1 (1) {
[0]=>
int(123)
}
如何从中检索值 123 $input
?
https://bugs.php.net/bug.php?id=45959
不幸的是,这是一个已知问题,您对此无能为力。
如果您被外部来源的这种类型的对象卡住,最好的办法是将其转换回数组以获取值:
$input = (object)(array) 123;
$array = (array) $input;
echo $array[0];
试试这个代码:
<pre><?php
$input = (object)(array) 123;
$reflection = new ReflectionObject($input);
var_dump($reflection->hasProperty('0'));
?></pre>
这将告诉您,虽然您仍然可以看到 中的值var_dump($input)
,但它不被视为属性。如果你要求getProperties()
,你根本不会得到任何输出。
还有..你为什么认为你需要这种可憎的东西?好像您要求 SO 修补您针对错误定义问题的损坏解决方案的错误修复。