3

PHP5 中的 getter 和 setter 是什么?

有人可以给我一个解释的好例子吗?

4

4 回答 4

9

这是 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;    
    }    
}
于 2010-02-18T19:26:44.143 回答
3

类的属性可以是私有的。这意味着只有对象可以读取和写入自己的私有属性。因此,您需要方法来做到这一点。读取和返回属性值的方法称为getter,写入属性的方法称为setter。使用这些方法,类可以控制输出和输入。这个概念称为封装

于 2010-02-18T19:26:02.993 回答
2

Getter 和 Setter 是 PHP 5 中相当新的概念,以两个神奇的函数 __get() 和 set() 的形式出现。这两个函数极大地设置或获取对象的属性值,如以下示例中所述。

class Datatype{
  private $thing;
  public function _set($k,$v){
    $this->$k = $v;
  }
  public function __get($k){
   return $this->$k;
  }
}
于 2011-10-26T04:50:10.563 回答
1

PHP手册在这个问题上确实不是很冗长,但是有一个非常详细的示例应该可以解释很多。魔术方法:属性重载

于 2010-02-18T19:24:56.177 回答