访问者和变异者?

时间:2010-05-04 06:00:48

标签: php doctrine nomenclature

当使用教义时,我偶然发现了这两个词:accessor和mutator。

这些只用于学说还是特定于php?

这是什么意思?

感谢

4 个答案:

答案 0 :(得分:24)

他们只是吸毒者和制定者的精彩术语。

class MyClass
{
    private $prop;

    // Accessor (or Getter)
    public function getProp()
    {
        return $this->prop;
    }


    // Mutator (or Setter)
    public function setProp($value)
    {
        $this->prop = $value;
    }

}

答案 1 :(得分:3)

我们现在不应该使用__get and __set in php5 and later吗?

答案 2 :(得分:2)

如果我理解正确,那么这两个特定于我猜任何面向对象的编程语言。关键是访问器是一种方法或函数,它提供对类中私有字段的访问,而mutator方法允许修改私有字段。我可以继续写这个,但我建议你只是google这些,你会得到很多关于它的信息。关于封装的所有内容< - 建议你也要查找那个术语。

答案 3 :(得分:0)

它们不仅仅是吸气剂和制定者的不同术语,至少在Laravel中不是。

引用文档:" Accessors和mutators允许您在从模型中检索Eloquent属性或设置其值时格式化Eloquent属性。"

https://laravel.com/docs/master/eloquent-mutators

所以,你可以说getter和setter是访问器和mutator的子集,它们将数据改变了零因子。

换句话说,如果我想得到一个原始领域"成本"从桌子上,我会用一个吸气剂。如果我想用磅和便士来表达和格式化那个字段,那么我可以使用一个存取器。

还有其他方法可以解决,但这是一个选择。