4
A
回答
8
這是數據隱藏(或封裝)在OOP的概念。例如,如果你想在你的課堂中擁有一個特定的屬性,讓我們說'數量',並給你的客戶類選擇改變或提取它的價值你應該使你的變量'數量'私人(對於那些誰使用你的類),並生成兩個方法一個getter和一個setter來操縱你的值(這是公共的)。
原因是能夠驗證數據或在設置或獲取您的價值之前對其進行操作。下面是一個簡單的例子:
class test {
private $count; //those who use your class are not able to see this property, only the methods above
public function setCount($value)
{
//make some validation or manipulation on data here, if needed
$this->count = $value;
}
public function getCount()
{
return $this->count;
}
}
1
PHP手冊在問題上確實不是很詳細,但是有一個非常詳細的例子,應該解釋很多。 Magic methods: Property overloading
3
類的屬性可以是私有的。這意味着只有對象可以讀寫自己的私有屬性。因此你需要方法來做到這一點。讀取和返回屬性值的方法稱爲getter,寫入屬性的方法稱爲setter。通過這些方法,這些類可以控制正在發生的事情和即將發生的事情。這個概念被稱爲encapsulation。
2
getter和setter是在PHP 5中兩個神奇功能__get()和()設置的形式很新的概念。這兩個函數大幅設置或獲取對象的屬性值,如以下示例中所述。
class Datatype{
private $thing;
public function _set($k,$v){
$this->$k = $v;
}
public function __get($k){
return $this->$k;
}
}
相關問題
- 1. 爲什麼setter和getter方法
- 2. getter和setter C++
- 3. getter和setter在
- 4. Synchronzied Getter和Setter
- 5. 爲什麼這個Getter和Setter的行爲是這樣的?
- 6. 爲什麼更喜歡getter和setter方法而不是公開?
- 7. Setter和getter消息
- 8. Getter和Setter方法
- 9. Getter和Setter解釋?
- 10. 的JUnit getter和setter
- 11. Angular 2 Setter和Getter
- 12. getter和setter風格
- 13. setter和getter方法
- 14. Getter和setter問題
- 15. 使用getter和setter
- 16. setter和getter公約
- 17. getter和setter錯誤
- 18. getter和setter問題
- 19. 枚舉setter和getter
- 20. 爲什麼調用了uid-getter/setter(ArrayCollection)?
- 21. 繼承和getter和setter
- 22. 將getter和setter命名爲「get ...」和「set ...」有什麼好處?
- 23. 網點是否有getter/setter?
- 24. C#getter和setter速記
- 25. XMLSerializer的特殊getter和setter
- 26. iOS Getter和Setter混淆
- 27. @ManagedProperty - 設置getter和setter
- 28. 設置getter和setter方法
- 29. getter和setter方法在WCF
- 30. @property,setter和getter問題?
在某些情況下,getter和setter與封裝相反。如果你有一個getter和一個變量的setter,那麼你很可能需要改變你的設計,因爲你基本上暴露了這個內部成員。爲什麼setX,getX,setY,getY可以使用更多封裝的'moveTo'或'moveBy'方法? – 2010-06-04 22:51:33