在jQuery插件中,我们可以传递带有属性的匿名对象。
$('selecter').function({property: 'value', property: 'value'})
插件代码中jquery有一个名为extend的函数。它的作用是将2个对象作为参数,然后用对象2的属性覆盖对象1的属性。
是否有一种方法来做到这一点或类似的东西在php不使用数组?
如果您的对象只是stdClass
的实例-您可以只做
$result = (object)array_merge((array)$a, (array)$b);
否则,在循环中遍历一个对象,并将其属性赋值给另一个对象。
foreach (get_object_vars($b) as $key => $val) {
$a->{$key} = $val;
}
在php 5.4中,您将能够使用数组的简短语法:
$obj = new obj(['property' => 'value']);
,然后像@zerkms建议的那样在构造函数中"合并";)