установить свойства объектов в php, как вы бы в jQuery - PullRequest
1 голос
/ 07 октября 2011

В плагинах jQuery мы можем передавать анонимный объект со свойствами.

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

в плагине в коде jquery есть функция под названием extend.для этого он возьмет 2 объекта в качестве параметров, а затем перезапишет свойства объекта 1 свойствами объекта 2.

Есть ли способ сделать это или нечто подобное в php без использования массивов?

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Если ваши объекты просто экземпляры stdClass - вы можете сделать просто

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

В противном случае просто обойдите один объект в цикле и присвойте его свойства другому объекту.

foreach (get_object_vars($b) as $key => $val) {
    $a->{$key} = $val;
}
0 голосов
/ 07 октября 2011

В php 5.4 вы сможете использовать краткий синтаксис для массивов:

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

и затем "слить" его в конструкторе, как предложено @zerkms;)

...