我用php创建了一个带有新stdClass的新对象。
$response->node1->node2->summary = new stdClass();
$response->node1->node2->summary->text = "lorem ipsum";
echo "<pre>";
var_dump( $response );
echo "</pre>"
这是结果:
object(stdClass)#17 (1) {
["node1"]=>
object(stdClass)#10 (1) {
["node2"]=>
object(stdClass)#12 (1) {
["summary"]=>
object(stdClass)#16 (1) {
["text"]=>
string(11) "lorem ipsum"
}
}
}
}
如何在名为“summary”的循环中创建更多对象?结果应如下所示:
object(stdClass)#17 (1) {
["node1"]=>
object(stdClass)#10 (1) {
["node2"]=>
object(stdClass)#12 (1) {
["summary"]=>
object(stdClass)#16 (1) {
["text"]=>
string(11) "lorem ipsum"
}
["summary"]=>
object(stdClass)#17 (1) {
["text"]=>
string(11) "different content"
}
}
}
}
在for循环中,我总是得到for循环中的最后一个内容。
thx 4帮助我。
您不能拥有两个具有相同名称的属性; $foo->summary
必须提到一件事。
你可以做的是将该属性的值设置为一个数组:
$response->node1->node2->summary = [];
然后将项添加到该数组:
$response->node1->node2->summary[] = $summary;
这与设置普通变量相同,并且可以以相同的方式使用该数组。
(如果您使用各种节点的类,而不是stdClass
对象的大窝,所有这些可能会更清楚,但我会给你怀疑的好处,并假设你有充分的理由这样做。 )