回答
他們只是吸氣劑和制定者的花哨條款。
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