在object方法中返回一个值还是在object方法中设置值? PHP

时间:2013-03-13 17:51:25

标签: php oop methods return

我可以用两种不同的方式编写完全相同的类;

class Simple {

    private $var;

    public function __construct() {

        $this->var = $this->setVar();
    }

    private function setVar() {

        return true;
    }
}

或者

 class Simple {

    private $var;

    public function __construct() {

        $this->setVar();
    }

    private function setVar() {

        $this->var = true;
    }
}

我什么时候使用一个而不是另一个?我见过许多不同的php应用程序使用两种不同的类型。但似乎没有一般的指导方针可以遵循,或者甚至对这个事实是否重要?

2 个答案:

答案 0 :(得分:3)

对我来说,这些都不是正确的属性设置者。属性设置器应该接受一个参数,并将参数值分配给属性:

class Simple {
    private $var;
    public function setVar($val) {
        $this->var = $val;
    }

    public function getVar() {
        return $this->var;
    }
}

答案 1 :(得分:2)

Setters应该设置,而不是返回。这不需要再解释了。