일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CDMA
- 라디오
- VoIP
- SWT
- 그녀가말했다
- 공정위
- USIM
- ETF
- brew
- Java
- EV-DO Rev. B
- 이지형
- 유희열의라디오천국
- 한국의 기획자들
- 자바
- 김장훈
- 페이스북
- 모던음악만만세
- Wibro
- HSDPA
- 민동현의토요명화
- 김장훈의who
- 사요
- "명탐정 코난"
- 위피
- 민동현
- 차트쇼쇼쇼
- 러시아
- itmusic
- 퀄컴
- Today
- Total
zyint's blog
네임스페이스(Namespace) 본문
목차
요약#
PHP 네임스페이스를 설명합니다. 네임스페이스는 PHP 5.3.0에서 지원합니다.
이 페이지는 완전하지 않습니다. 추후 업데이트 예정입니다.
네임스페이스(Namepace) 선언#
네임스페이스는 PHP문법에서 class, function, constant의 이름 중복을 피하기 위해서 사용합니다.
네임스페이스는 PHP 5.3.0에서 지원합니다.
하나의 파일에서의 single, multiple 네임스페이스 선언#
하나의 파일에서 하나의 Namespace 선언#
네임스페이스 선언은 php코드에서 가장 처음에 나와야 하며 namespace 키워드를 이용하여 선언합니다.
예제: single 네임스페이스 선언
<?php
namespace MyProject;
const CONNECT_OK =1;
class Connection {/* ... */}
function connect () {/* ... */}
?>
하나의 파일에서 여러개의 네임스페이스 선언#
하나의 파일에서 여러개의 네임스페이스를 선언 할 수 있고, 이를 위해서는 {}를 사용하는 방법과 {}를 사용하지 않는 두 가지 방법이 있습니다.
하나의 파일에서 여러개의 네임스페이스를 선언하는 경우 괄호를 사용하길 추천합니다.
예제: 추천하지 않는 방법, 하나의 파일에서 여러 네임스페이스를 선언할 때, 중괄호{}를 사용하지 않는 경우.
namespace MyProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
namespace AnotherProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
예제: 추천하는 방법, 하나의 파일에서 여러 네임스페이스를 선언할 때, 중괄호{}를 사용하는 경우.
namespace MyProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
namespace AnotherProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
?>
계층적 구조의 네임스페이스#
네임스페이스는 계층적 구조로 선언할 수 있습니다. 아래 예제는 클래스, 함수, 상수를 다음과 같이 계층적으로 선언합니다.
- 클래스: MyProject\Sub\Level\Connection
- 함수: MyProject\Sub\Level\connect()
- 상수: MyProject\Sub\Level\CONNECT_OK
예제:계층적 구조를 가지는 네임스페이스 선언
namespace MyProject\Sub\Level;
const CONNECT_OK =1;
class Connection {/* ... */}
function connect (){/* ... */}
?>
Global non-namespace#
네임 스페이스 이름을 입력하지 않고 namespace를 선언하면 global code를 뜻합니다.
예제: 네임스페이스 이름을 지정하지 않은 global code 예제
namespace MyProject {
const CONNECT_OK =1;
class Connection {/* ... */}
functionconnect(){/* ... */}
}
namespace { // global code
session_start ();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>
참고자료#
php.net, Declaring sub-namespaces
php.net, Defining multiple namespaces in the same file
이 글은 스프링노트에서 작성되었습니다.