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