添加更多具有相同名称的对象(stdClass) php
Add more object(stdClass) with the same name with php
我用 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
对象,那么所有这些可能会更清楚,但我会给您带来疑问的好处并假设您有充分的理由这样做。)
我用 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
对象,那么所有这些可能会更清楚,但我会给您带来疑问的好处并假设您有充分的理由这样做。)