최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

■ 백엔드 ■/PHP

php oop의 기본

serpiko 2014. 2. 1. 23:25

  php 클래스의 기본

 

기존의 php4 까지 지원했었던 객체 모델은 원시적인 형태, 즉 어떤 변수나 파라메터값이 메소드로 전달될 때 모든 객체들이

 

Array와 같은방식으로 clone되어 오로지 '값'으로만 참조되었다. (메모리와 포퍼먼스의 비효율)

 

그러나 php5는 핸들이라는 동일한 주소 공간을 가르키는 포인터 개념으로 접근하기 때문에 새로운 접근방식을 가지게 되었고

 

본격적으로 private와 protected, public등의 멤버변수를 도입한다.

 

( 더욱 자세한 내용 확인 : http://kr.php.net/manual/en/language.oop5.basic.php )

 

따라서 Java나 Actionscript3.0을 다뤄본 경험이 있다면, 약간의 표현방식에 대한 차이를 짚어본 후 빠르게 습득할 수 있다.

 

본인이 그나마 가장 많이 쓰던 언어는 Actionscript2.0/3.0과 JavaScript(...)인데 import로 클래스를 유기적으로 extend 해왔다면

 

마찬가지로 php에서는 클래스를 include하여 new로 쓰기만 하면 된다.

 

구성한 (혹은 이미 구성된) 라이브러리에 많은 함수와 내용이 있더라도 객체로 분할/구분 하므로써 마치 레고블럭처럼

 

함수 기반의 작성에서 벗어나 '세분화, 그룹화, 간결화'가 이루어질 것이다.

 

대략적인 설명은 여기까지 하고 php oop(Object-Oriented Programming)에 대한 기본을 몇단계의 스텝으로 나누어 빠르게 습득해 본다.

 

 

  블랙박스 객체 생성

 

<?php
header("Content-type:text/html;charset=utf-8");

class BlackBox{

	public function __construct(){}

	public function actionRec($bool=true)
	{
		if($bool) echo "블박 녹화 중 <br />";
		else echo "블박 녹화 종료  <br />";
	}
}

$a = new BlackBox();
$a->actionRec(false);
?>

 

 

2 : 한글을 보기 위해서 header의 인코딩을 utf8로 설정한다. 

 

4 : class생성. 이름은 BlackBox이다 (클래스도 하나의 데이터 타입으로 간주하기때문에 첫글자가 대문자로 작성하는 것이 일반적이다.)

 

6 : 생성자 함수. php기본 제공 예약어인 __construct() 를 쓰거나 클래스 이름으로 쓰거나 할 수 있다.

 

8 : BlackBox의 actionRec메서드 기본 매개변수가 true인 참인 값을 가지고있고 블랙박스의 동작 여부를 출력하는 함수.

 

10~11 : 매개변수가 참이면 동작, 거짓이면 동작 종료.

 

15 : $a 변수에 새로운 블랙박스 인스턴스를 생성한다.

 

16 : $a에 블랙박스가 만들어졌으므로 클래스접근 명령어인 "->" 를 통해서(대부분의 프로그래밍이 "."으로 접근한다.) 

      actionRec의 매개변수에 거짓을 넘겨준다.

 

 

  출력 결과

 

블박 녹화 종료

 

 

 

 

 

 

 

 

 

'■ 백엔드 ■ > PHP' 카테고리의 다른 글

php oop의 기본3  (0) 2014.02.02
php oop의 기본2  (0) 2014.02.02
달력php -> js -> jquery  (0) 2013.12.31
include, require, include_once, require_once  (0) 2013.12.12
php의 전역변수를 함수에서  (0) 2013.11.03
댓글