是否可以在php中为对象一次设置多个属性?而不是做:
$object->prop1 = $something;
$object->prop2 = $otherthing;
$object->prop3 = $morethings;
Run Code Online (Sandbox Code Playgroud)
做类似的事情:
$object = (object) array(
'prop1' => $something,
'prop2' => $otherthing,
'prop3' => $morethings
);
Run Code Online (Sandbox Code Playgroud)
但不覆盖对象.
Shi*_*dim 18
不像你想要的那样.但这可以通过使用循环来完成.
$map = array(
'prop1' => $something,
'prop2' => $otherthing,
'prop3' => $morethings
);
foreach($map as $k => $v)
$object->$k = $v;
Run Code Online (Sandbox Code Playgroud)
仅查看2条额外的线条.
您应该看看面向对象的PHP最佳实践:
"既然setter函数返回$ this,你可以将它们链接起来:"
$object->setName('Bob')
->setHairColor('green')
->setAddress('someplace');
Run Code Online (Sandbox Code Playgroud)
我建议你不要这样做。说真的,不要。
您的代码在第一种方式中要干净得多,它更清楚您的意图,并且您不会将代码集中到将来某个时候有人会查看您的代码并认为“白痴到底在想什么”的程度?
如果你坚持做一些显然是错误的事情,你总是可以创建一个数组,迭代它并在循环中设置所有属性。不过我不会给你代码。这是邪恶的。