Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:什么是Getter和setter?_Php_Oop_Setter_Getter - Fatal编程技术网

PHP:什么是Getter和setter?

PHP:什么是Getter和setter?,php,oop,setter,getter,Php,Oop,Setter,Getter,PHP5中的getter和setter是什么 有人能给我一个很好的例子来解释吗?PHP手册在这个问题上确实不是很详细,但是有一个非常详细的例子应该解释很多 类的属性可以是私有的。这意味着只有对象可以读取和写入自己的私有属性。因此,您需要方法来做到这一点。读取和返回属性值的方法称为getter,写入属性的方法称为setter。通过这些方法,类可以控制输出和输入的内容。这个概念叫做。这是OOP中数据隐藏(或封装)的概念。例如,如果你想在你的类中有一个特定的属性,比如说'Amount',并给你的类的客

PHP5中的getter和setter是什么


有人能给我一个很好的例子来解释吗?

PHP手册在这个问题上确实不是很详细,但是有一个非常详细的例子应该解释很多

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

这是OOP中数据隐藏(或封装)的概念。例如,如果你想在你的类中有一个特定的属性,比如说'Amount',并给你的类的客户端更改或提取它的值的选项,你应该将你的变量'Amount'设置为私有的(对于那些使用你的类的人来说是不可见的),并生成两个方法一个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;    
    }    
}

getter和setter在PHP5中是一个全新的概念,其形式是两个神奇的函数uu get()和set()。这两个函数设置或获取对象的属性值,如下例所述

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

在某些情况下,getter和setter与封装相反。如果您有一个变量的getter和setter,那么您很有可能需要更改您的设计,因为您基本上公开了该内部成员。当您可以使用更封装的“moveTo”或“moveBy”方法时,为什么要使用setX、getX、setY、getY?