클래스


클래스는 기존 함수형 프로그램 코딩 개발 방법보다 향상된 객체지향형 프로그램 개발 방법론 및 환경을 지원합니다. PHP도 다양한 객체지향 방법론을 도입하여 최신 트렌드에 맞는 클래스 및 코딩 방법을 제공합니다.


클래스 & 인스턴스


클래스는 계층적으로 분류한 기능과 특성의 모음이라 생각하시면 됩니다. 클래스는 객체(object)와 실체화(instance)를 통하여 만들 수 있습니다.

PHP 에서는 클래스 선언을 다음과 같이 할 수 있습니다.

|문법|

class jiny {
	클래스 내용 ...

	public $username;

	public function setName($name){
		$this->username = $name;
	}
}

class라는 키워드를 사용하고 다음에 클래스 이름을 사용자가 지정할 수 있습니다.

클래스명은 영문 또는 언더바(_)로 시작합니다. 클래스의 내용은 중괄호 { } 안에 내용을 작성하면 됩니다.



class 선언



프로퍼티


프로퍼티는 클래스에서 변수를 부르는 또 다른 이름 중 하나입니다.

접근 권한 속성


클래스와 같이 객체지향 프로그램에서 속성이라는 추가적인 접근 권한 개념이 도입됩니다. 접근 권한 속성은 각각의 클래스의 독립성과 보호를 위해서 프로퍼티(변수)나 메서드(함수) 등에 권한을 설정하는 것입니다.

PHP 클래스에서는 세 가지의 속성을 가지고 있습니다. public, protected, private를 제공합니다. 속성은 클래스 외부에서의 접근을 제한하고자 할 때 사용할 수 있습니다.

접근 속성의 종류 PHP 클래스에서는 프로퍼티 변수의 속성에 대해서 세 가지 타입을 지원합니다.

  • public: public으로 설정된 프로퍼티 변수는 외부에서 접근이 가능합니다. 즉, 값을 읽거나 새로운 값으로 설정이 가능합니다.

  • protected: 정의한 클래스와 상속한 클래스에서만 사용이 가능합니다. 이 속성은 클래스 내의 메서드와 서브 클래스에서만 접근하여 사용할 수 있습니다. 외부에서 접근할 수는 없지만 상속을 받은 경우에는 접근이 가능합니다.

  • private: 정의한 클래스 내에서만 사용 가능합니다. 이 속성은 같은 클래스 내에서만 참조가 가능합니다. protectd와 달리 서브 클래스에서는 사용할 수 없습니다


메서드



클래스 상수



인스턴스 생성



객체 복사



객체 접근



$this



정적 클래스



익명 클래스



매직 메서드