当使用教义时,我偶然发现了这两个词:accessor和mutator。
这些只用于学说还是特定于php?
这是什么意思?
感谢
答案 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的子集,它们将数据改变了零因子。
换句话说,如果我想得到一个原始领域"成本"从桌子上,我会用一个吸气剂。如果我想用磅和便士来表达和格式化那个字段,那么我可以使用一个存取器。
还有其他方法可以解决,但这是一个选择。