像在jQuery中一样在php中设置对象属性

时间:2011-10-07 03:57:56

标签: php jquery oop methods properties

在jQuery插件中,我们可以传递一个带有属性的匿名对象。

$('selecter').function({property: 'value', property: 'value'})
插件中的

代码jquery有一个名为extend的函数。这样做是将2个对象作为参数,然后用对象2中的属性覆盖对象1的属性。

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

2 个答案:

答案 0 :(得分:1)

如果你的对象只是stdClass的实例 - 你可以只做

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

否则只是在循环中遍历一个对象并将其属性分配给另一个对象。

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

答案 1 :(得分:0)

在php 5.4中,您将能够使用数组的简短语法:

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

然后在@zerkms建议的构造函数中“合并”它;)