使用Service修改Method中的变量

时间:2013-08-24 12:38:01

标签: php oop

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

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

}

1 个答案:

答案 0 :(得分:0)

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

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

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

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

在你知道完全你正在做什么之前,不要开始搞乱参考。