1

我想知道处理这种情况的正确方法:使用服务修改方法中的变量。我知道你可以这样做:

$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);
    }

}

4

1 回答 1

0

可以通过传入输入作为参考来实现:

public function modify(&$input) {
//                     ^ See what I did there?

更好的方法是返回修改后的输入,然后再次分配:

$input = $this->service->modify($input);

在您确切知道自己在做什么之前,不要开始弄乱引用。

于 2013-08-24T12:42:31.063 回答