什么是Getter和Setters?

时间:2010-02-18 19:23:00

标签: php oop setter getter

PHP5中的getter和setter是什么?

有人能给我一个很好的解释说明吗?

4 个答案:

答案 0 :(得分:8)

这是OOP中数据隐藏(或封装)的概念。例如,如果您想要在您的班级中拥有某个属性,请说“金额”并为您的班级客户提供更改或提取其值的选项您应该将您的变量“金额”设为私有(对于使用您的class)并生成两个方法: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 :(得分:3)

类的属性可以是私有的。这意味着只有对象才能读写自己的私有属性。因此,您需要方法来做到这一点。读取和返回属性值的方法称为getters,而写入属性的方法称为setter。通过这些方法,类可以控制出现的内容和进入的内容。这个概念称为encapsulation

答案 2 :(得分:2)

Getters和Setter在PHP 5中是两个神奇函数__get()和set()形式的全新概念。这两个函数设置或获取对象的属性值,如以下示例所述。

class Datatype{
private $thing;
public function _set($k,$v){
 $this->$k = $v;
}
public function __get($k){
 return $this->$k;
}
}

答案 3 :(得分:1)

PHP手册在这个问题上真的不是很冗长,但是有一个非常详细的例子可以解释很多。 Magic methods: Property overloading