你能比较和更新两个stdClass数组吗?

时间:2017-09-13 08:02:11

标签: php stdclass

我有两个stdclass对象,即

stdClass Object
(
    [apple] => 10
    [orange] => 10
    [grape] => 10
    [banana] => 20
    [mango] => 30
)

stdClass Object
(
    [apple] => 15
)

我可以像正常的阵列操作一样更新苹果吗?或者还有另一种方法吗?

还有这个和普通数组之间的区别吗?

2 个答案:

答案 0 :(得分:0)

您可以使用普通的foreach循环遍历它们:

$obj = new StdClass;

$obj->test = 1;
$obj->more_testing = 2;

foreach ($obj as $key => $value) {
    echo $key . ': ' . $value . '\n\n';
}

或者您可以使用(array)将它们作为数组投射为数组。

直播示例

Repl

阅读材料

Iterations

答案 1 :(得分:0)

请参阅comparing objects上的官方文档:

  

当使用比较运算符(==)时,对象变量以简单的方式进行比较,即:如果两个对象实例具有相同的属性和值(值与==进行比较),则它们是相等的,并且是同一个班级。

     

当使用标识运算符(===)时,当且仅当它们引用同一类的同一实例时,对象变量才相同。

另请参阅此处:What's the fastest way to compare two objects in PHP?