我想知道处理这种情况的正确方法:使用服务修改方法中的变量。我知道你可以这样做:
$input = $this->modify($input)
但这并不像处理这种情况的正确OOP方式。请参阅内联评论。
class myClass {
public function __construct(Service $service)
{
$this->service = $service;
}
public function work($input)
{
// $input = SOMETHING
$this->service->modify($input);
// $input = SOMETHING MODIFIED
Entity::create($input);
}
}
答案 0 :(得分:0)
可以通过传入输入作为参考来实现:
public function modify(&$input) {
// ^ See what I did there?
更好的方法是返回修改后的输入,然后再次分配:
$input = $this->service->modify($input);
在你知道完全你正在做什么之前,不要开始搞乱参考。