PHP标准类问题
情景:PHP标准类问题,php,stdclass,Php,Stdclass,情景: $x = json_decode( $x ); foreach ( $x as $item ) { $info[] = $item; //ERROR } 我正在通过一个数据源循环获取数据。我想向循环中的stdClass对象添加项。我该怎么做?我对stdobj不太熟悉。如果我理解正确,您应该能够遵循常规对象语法来获得想要的结果。将可选的第二个参数添加到json_decode并设置为true,以将json解码为关联数组,因为这似乎就是您正在使用它的表单 $info = new s
$x = json_decode( $x );
foreach ( $x as $item )
{
$info[] = $item; //ERROR
}
我正在通过一个数据源循环获取数据。我想向循环中的stdClass对象添加项。我该怎么做?我对stdobj不太熟悉。如果我理解正确,您应该能够遵循常规对象语法来获得想要的结果。将可选的第二个参数添加到
json_decode
并设置为true
,以将json解码为关联数组,因为这似乎就是您正在使用它的表单
$info = new stdClass();
$x = json_decode( $x, true );
foreach ( $x as $key => $val) {
$info->$key = $val;
}
正如Ignas指出的,
json\u decode()
的结果已经作为stdClass对象返回,因此如果您只使用$x=json\u decode($x)
,您根本不需要$info
。。。您已经有了$x
作为stdClass对象。如果您希望json_解码返回一个数组,您可以执行以下操作:
$x = json_decode( $x, true ); // returns associative array instead of object
$info = (object) $x;
可以找到更多信息和示例。
SPL
让我们使用与示例中生成错误相同的语法。如果您能够使用ArrayObject
而不是stdClass
我可以指出您正在将一个对象强制转换为一个对象吗?那似乎没什么用。接得好!修复了代码,使其返回数组而不是对象。