Что такое геттер и сеттер? - PullRequest
4 голосов
/ 18 февраля 2010

Что такое геттеры и сеттеры в PHP5?

Может кто-нибудь дать мне хороший пример с объяснением?

Ответы [ 4 ]

8 голосов
/ 18 февраля 2010

Это концепция для сокрытия данных (или инкапсуляции) в ООП. Например, если вы хотите иметь определенное свойство в своем классе, скажем, «Сумма» и дать клиенту вашего класса возможность изменить или извлечь его значение, вы должны сделать вашу переменную «Сумма» закрытой (недоступной для тех, кто использует ваш 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;    
    }    
}
3 голосов
/ 18 февраля 2010

Атрибуты классов могут быть приватными. Это означает, что только объект может читать и записывать свои собственные личные атрибуты. Поэтому вам нужны методы, чтобы сделать это. Методы, которые читают и возвращают значение атрибута, называются получателями, а те, которые записывают атрибуты, называются установщиками. С помощью этих методов классы могут контролировать то, что выходит и что входит. Это понятие называется инкапсуляция .

2 голосов
/ 26 октября 2011

Геттеры и сеттеры - это совершенно новая концепция в PHP 5 в виде двух магических функций __get () и set (). Эти две функции устанавливают или получают значение свойства объекта значительно, как описано в следующем примере.

class Datatype{
private $thing;
public function _set($k,$v){
 $this->$k = $v;
}
public function __get($k){
 return $this->$k;
}
}
1 голос
/ 18 февраля 2010

Руководство по PHP на самом деле не очень многословно в этом вопросе, , но есть очень подробный пример, который должен многое объяснить. Магические методы: перегрузка свойств

...