2017-09-13 172 views
0

我有两个stdClass的对象即你可以比较和更新两个stdClass数组吗?

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

stdClass Object 
(
    [apple] => 15 
) 

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

这和普通的数组有什么区别?

+1

这些都是对象,而不是数组。 – Script47

+0

[比较对象属性和在PHP中显示比较]可能的重复(https://stackoverflow.com/questions/5911067/compare-object-properties-and-show-diff-in-php) –

回答

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

+0

这只适用于公共领域。 –

0

参见comparing objects官方文档:

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

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

而且,在这里看到:What's the fastest way to compare two objects in PHP?