回答
他们只是吸气剂和制定者的花哨条款。
class MyClass
{
private $prop;
// Accessor (or Getter)
public function getProp()
{
return $this->prop;
}
// Mutator (or Setter)
public function setProp($value)
{
$this->prop = $value;
}
}
如果我正确地理解了你,这两个具体到我猜的任何面向对象的编程语言。关键是accessor是一种方法或函数,它提供对类中私有字段的访问,而mutator方法允许修改私有字段。我可以继续写这个,但我建议你只是谷歌这些,你会得到很多关于它的信息。关于封装<的所有信息 - 建议您查看该术语。
我喜欢将它们视为常规功能,只是用于一些常见的众所周知的目的......仅此而已。 – m0s 2010-05-04 06:30:51
现在不应该使用__get and __set in php5 and later吗?
它们不仅仅是获得者和制定者的不同术语,至少在Laravel中不是这样。
引用文档:“访问器和增变器允许您在从模型中检索它们或设置它们的值时格式化Eloquent属性。”
https://laravel.com/docs/master/eloquent-mutators
所以,你可以说,getter和setter方法是存取函数,其通过零系数更改数据的一个子集。
换句话说,如果我想从表格中获得原始字段“成本”,我会使用getter。如果我想用磅和便士来表示该字段并进行格式化,那么我可以使用一个访问器。
我还有其他方法可以解决这个问题,但这是一种选择。
你能解释一下“改变零因子”吗?谢谢! – 2017-09-20 10:20:46
当然。访问器和变异器在保存或返回新值之前更改值。制定者并获得它不会改变价值。所以当我说“以零为因子”时,我的意思是“没有变化”。你只是没有增加任何价值。 – Puzbie 2017-09-26 10:35:00
- 1. accessor和mutator方法
- 2. 如何编写accessor和mutator?
- 3. accessor和mutator方法混乱
- 4. Mutator和Accessor(使用继承)
- 5. eclipse中的accessor和mutator方法
- 6. Java - 使用Accessor和Mutator方法
- 7. Laravel型号accessor和mutator通配符(*)
- 8. C++ []索引运算符重载作为accessor和mutator
- 9. 将accessor和mutator方法从一个类移动到它的超类
- 10. Hypertable的Mutator与Shared Mutator(Java)
- 11. Mutator elisp函数
- 12. Python的访问和mutator方法
- 13. Laravel Mutator和模型观察者
- 14. Laravel通过accessor vue
- 15. jquery accessor id vs class?
- 16. “。”或“ - >”C struct accessor
- 17. Selenium Accessor not stored variable
- 18. Laravel限定的Mutator
- 19. Laravel 5.4 - Skip Model Mutator
- 20. Laravel Accessor for ID列
- 21. 是否可以在C++中使用Mutator内的Mutator?
- 22. MS UnitTest - Private Accessor not always recognized
- 23. Angular 2 ngModel mutator指令
- 24. Laravel mutator或创建事件
- 25. 覆盖访问器和mutator方法覆盖
- 26. Set Accessor on class看起来不适用于TextInfo和TitleCase
- 27. 正常的构造函数和mutator之间的区别? Java
- 28. 什么是<stable>和<accessor>当做Scalac -Xprint:typer?
- 29. 如何在C++中重载访问器和mutator运算符[]
- 30. 没有public accessor的ActionScript3接口实现?
并且为了澄清,无论语言还是框架,它们都是面向对象编程中常用的术语。 – nickf 2010-05-04 06:07:23
那么为什么他们把它们称为访问器和变体而不是getter和setter?他们不是神奇的方法,也就是说,他们如果我输入setProp(),但没有定义一个方法,它不会自动创建? – 2010-05-04 06:14:09
@fayer访问器和增变器是计算机科学中使用的更一般的术语。 getter和setter更加随意,我猜...也许是一种俚语。只要我知道,它不会神奇地为你在php中创建变量......需要看规范......很确定它不会。 – m0s 2010-05-04 06:24:43