4
A
답변
8
이것은 OOP의 데이터 숨기기 (또는 캡슐화)의 개념입니다. 예를 들어 클래스의 특정 속성을 'Amount'라고하고 클래스의 클라이언트에게 값을 변경하거나 추출하는 옵션을 제공하려는 경우 'Amount'변수를 비공개로 설정해야합니다. 클래스)를 사용하고 값 (public)을 조작하는 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
PHP 매뉴얼은 실제로이 문제에 대해 자세히 설명하지는 않지만 이지만에는 많은 것을 설명해야하는 매우 자세한 예제가 있습니다. Magic methods: Property overloading
3
클래스의 속성은 private 일 수 있습니다. 즉, 개체 만이 자체 특성을 읽고 쓸 수 있음을 의미합니다. 그러므로 당신은 그것을 할 방법이 필요합니다. 속성 값을 읽고 반환하는 메소드를 getter라고하고 속성을 쓰는 메소드를 setter라고합니다. 이 메서드를 사용하면 클래스에서 나가는 내용과 들어오는 내용을 제어 할 수 있습니다.이 개념을 encapsulation이라고합니다.
2
게터와 세터 두 마법 함수 __get() 및()로 설정 형태 PHP 5 아주 새로운 개념이다 : 여기 간단한 예이다. 이 두 함수는 다음 예제에서 설명한대로 객체의 속성 값을 설정하거나 가져옵니다.
class Datatype{
private $thing;
public function _set($k,$v){
$this->$k = $v;
}
public function __get($k){
return $this->$k;
}
}
관련 문제
- 1. 자바 게터와 세터 방법
- 2. 게터와 세터, 스레딩과 자바
- 3. 게터와 세터 : 코드 냄새, 필요악이, 또는 그들없이
- 4. 게터와 세터의 목적은 무엇입니까?
- 5. 게터와 세터와
- 6. 세터/게터
- 7. 레일 모듈에서 mattr_accessor 란 무엇입니까?
- 8. 지도가있는 클래스의 게터/세터
- 9. 모델에 게터와 세터가 많이 있습니다.
- 10. 스레드 란 무엇입니까 (스레드 란 무엇입니까?)?
- 11. C# 게터는/세터 문제
- 12. PHP 게터/세터
- 13. 체이닝 세터 : 단점이 있습니까?
- 14. 스프링 세터 방법 순서
- 15. 세터 게터 oddness @property
- 16. CGI 란 무엇이며 CGI 스크립트 란 무엇입니까?
- 17. 게터와 세터를 인라인으로 만드는 것이 좋은 습관입니까?
- 18. 개발 프레임 워크 란 무엇입니까? IDE 란 무엇입니까?
- 19. 버퍼 란 무엇입니까? 버퍼링 된 읽기 및 쓰기 란 무엇입니까?
- 20. DataContractTranslator 란 무엇입니까?
- 21. "분리 뮤텍스"란 무엇입니까?
- 22. 프로그래밍 언어 란 무엇입니까?
- 23. CSS - @page 란 무엇입니까?
- 24. Java의 직렬화 란 무엇입니까?
- 25. "기호 경고"란 무엇입니까?
- 26. 그림자 메모리 란 무엇입니까?
- 27. PHPSESSID 란 무엇입니까?
- 28. 정확히 PLINQ 란 무엇입니까?
- 29. ASP.Net MVC 란 무엇입니까?
- 30. 불량 선별기 란 무엇입니까?
일부 경우 getter와 setters는 캡슐화의 반대입니다. 변수에 대한 getter와 setter가있는 경우 기본적으로 해당 내부 멤버를 노출하기 때문에 디자인을 변경해야 할 가능성이 큽니다. 캡슐화 된 'moveTo'또는 'moveBy'메소드를 사용할 수있을 때 setX, getX, setY, getY가있는 이유는 무엇입니까? –