2011-10-07 67 views
1

在jQuery插件中,我们可以传递一个匿名对象的属性。在php中设置对象的属性就像你会在jQuery

$('selecter').function({property: 'value', property: 'value'}) 

在插件代码中jquery有一个名为extend的函数。这样做会以2个对象为参数,然后用对象2的属性覆盖对象1的属性。

有没有办法在不使用数组的情况下执行此操作或类似的操作?

+1

为什么不你想使用数组吗? JavaScript的对象非常像PHP的数组。 –

+1

为什么不使用array_merge或array_merge_recursive? PHP中的关联数组非常类似于JavaScript对象。 – Daff

+0

我更喜欢它不是一个数组,因为我将不得不使用更长时间输入的关联数组。 – Yamiko

回答

1

如果你的目标只是stdClass实例 - 你可以做到这

$result = (object)array_merge((array)$a, (array)$b); 

否则只是遍历循环一个对象,并指定其属性到另一个对象。

foreach (get_object_vars($b) as $key => $val) { 
    $a->{$key} = $val; 
} 
0

在PHP 5.4,你将能够使用短语法数组:

$obj = new obj(['property' => 'value']); 

,然后作为@zerkms建议构造“合并”它;)

相关问题