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