-------------------
클래스 & 객체
-------------------
1. 클래스(class)란? 일련의 변수와 이변수들을 사용하는 함수들의 모음으로 하나의 형태가 되어 변수를 선언하는 데 사용한다. 여기서 생성되는 변수가 바로 ‘객채’가 되는 것이다.
2. 객체들 생성하기 위해서는 new연산자를 사용한다. 그리고 클래식내의 함수에 접근하기 위해서는 ‘->’지시 연산자를 사용한다.
3. 클래스는 확장이 가능하다. 즉, 부모 클래스로부터 자식 클래스를 만들고 상속하기 위해서는 ‘extends'라는 키워드를 사용한다.
4. 클래스의 함수 중에 ‘생성자’라는 함수가 존재하는 데, 이것은 클래스 이름과 함수 이름을 같게 사용하여 새로운 객체가 생성될 때 마다 자동으로 함수를 호출하게 된다.
-------------------
calss공부.php
-------------------
<?
echo("<p>클래스와 객체 공부 </p>");
class car {
//car()라는 부모 클래스 정의한다.
function view_car($part) {
//view_car라는 함수 정의, $part매개변수도 선언한다.
$carPart =array("top"=>"blue","window"=>"yellow","wheel"=>"red");
echo($carPart[$part] . "<p>");
}
function drive_car($light) {
//drive_car함수정의하고, $light매게변수 선언
$drive = array("red"=>"stop","green"=>"go");
echo($drive[$light] . "<p>");
}
}
$a = new car;
//새로운 변수명 객체 a 선언
$a-> view_car("top");
// ->지시연산자에 의해서 car클래스 안의 view_car함수에 접근한다.
$a -> drive_car("green");
// ->지시 연산자에 의해서 car클래스 안의 drive_car함수에 접근
echo("<p> extends 상속 공부 <p>");
class my_car extends car {
//중요한 상속이다. 즉 부모 클래스인 car로부터 자식클래스인 my_car클래스로 상속되며 만들어진다.
//my_car클래스로 정의된 객체는 기존의 car클래스 내의 모든 함수는 물론이고 새로 정의된 함수에도 접근가능하다.이유는 모든 것이 상속되기 때문이다.
function ride($man) {
//ride 함수정의
$rideCar = array("me"=>"good drive","you"=>"bad drive");
echo($rideCar[$man] . "<p>");
// .은 문자열 연결 연산자이다.
}
}
$b = new my_car; //새로운 객체 b 선언, 자식 클래스로부터도 만들 수 있다.
$b -> view_car("window");
//view_car함수는 부모 클래스인 car에서 정의한 함수이지만, 상속이 되었기 때문에 view_car함수를 호출해서 사용할 수 있다.
$b -> drive_car("red");
//drive_car함수도 부모 car클래스내의 함수이다.
$b -> ride("me");
//ride함수는 자식클래스인 my_car클래스내의 함수이다.
echo("<p>생성자함수공부 <p>");
class echo_car extends car {
//echo_car 자식 클래스 생성
function echo_car() {
//함수 이름과 클래스명이 같다. 이럴경우 지시연산자를 사용할 필요가 없다.
echo("나의 자동차 색은 빨강입니다..");
}
}
$c = new echo_car;
//$c -> echo_car(); -> 지시연산자를 사용하여 클래스내의 함수를 호출해야 하지만 클래스 이름과 함수 이름이 같아서 지시연산자를 생략해도 함수를 자동으로 호출한다.
?>
------------------------------
결과값
---------------------------------
[출처] [php] 클래스 & 객체|작성자 gloria