PHP 클래스강좌

Chapter 1.

{ 클래스 정의하기 }

기본적인 클래스구문은 다음과 같다.

Class ClassName
{
속성(Properties)들을 정의하는 구문
메소드(Method) 구문
}

서브클래스 구문은 이렇게 쓴다.

Class SubClassName extends ClassName
{
속성 정의
메소드
}

서브클래스는 부모클래스의 모든 속성과 메소드를 물려받는다.
이 서브클래스에서 생성된 객체는 Brother 클래스와 Parents 클래스의 모든 메소드와 속성에 접근의 가능하다.
하지만 Parents 클래스의 객체는 자식클래스인 Brother 클래스의 속성과 메소드에 접근할 수 없다.
한마디로 자식은 부모의 모든 것을 가질 수 있지만 부모는 자식의 아무것도 가질수 없다.

Chapter 2

{ 속성 선언 (Declaring Properties) }
– 변수 선언에 관하여

Class Ipod
{
var $batt;
var $color;
var $music;

메소드 구문
}

PHP에서는 변수를 꼭 선언하지 않아도 되지만 클래스내에서 선언하여 사용하는 것이 훨씬 바람직하다.
클래스내에서 변수을 선언하는 것이 클래스를 이해하고 사용하는데 도움이 된다.

변수를 선언할때 기본값을 설정하여도 된다. 하지만 계산식을 사용하여 선언할수는 없다.
아래 예문을 보면 쉽게 이해가 될 것이다.

바른사용예제
var $batt = 10;
var $color = red;
var $music = 12;

허용되지 않는 사용예제
var $batt = 10-2;
var $color = red;
var $music = 12+9;

또한 변수 선언시 배열도 사용가능하다.
var $color = array(“gray”, “brown”);

이렇게 선언된 변수들은 구조체나 메소드를 사용하여 값을 변경하거나 값을 설정할수도 있다.

Chapter 3.

{ $this란 무엇인가? }

$this란 같은 클래스안의 속성들을 가리키는 특별한 변수이다.
$this는 클래스 외부에서는 사용불가하다.

$this는 아래와 같은 형식으로 사용된다.
$this->batt = 10;
$this->color = red;
$this->music = 12;

if($this->batt >10)
$new[$this->music] = 5;

$this->batt 는 $batt를 사용하는 방식과 같다.

{ 메소드에 관하여 (Method) }
– 메소드란 함수 형식으로 객체가 할수있는 것을 정의한다.

아래 클래스에서 function addMusic() 이 바로 메소드이다.

Class Ipod
{
var $music = 12;
function addMusic($amount)
{
$this->music = $this->music + $amount
echo “Ipod의 노래가 $amount 만큼 추가되었다”;
}
}

Chapter 4

{ Constructor (__construct) }

Constructor는 객체가 생성될때 실행되는 특별한 메소드이다.
Constructor는 필수사항이 아니며 객체생성시 속성값 설정이나 다른 어떤것을 실행할 것이 아니면 사용할 필요없다.
Constructor는 단 하나만 사용가능하다.

function __construct()
{
$this->batt = 10;
$this->buyCase();
}

이 Constructor는 새로운 아이팟을 정의한다. Ipod가 생성될때 배터리량이 10이며 케이스를 구매한다.^^

참고: __는 언더스코어 라고 부른다.

참고: http://us3.php.net/manual/en/language.oop5.decon.php