我想检索转换为数组的值,然后检索对象..
$input = (object)(array) 123;
var_dump($input);
输出:
object(stdClass)#1 (1) {
[0]=>
int(123)
}
如何从$input
检索值123?
答案 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()
,你根本就得不到输出。
另外..为什么你认为你需要这种憎恶?好像你要求你修补一个错误定义的问题的破解解决方案。