예제 #1 여러 네임스페이스 정의, 단순 조합 구문
<?php namespace MyProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } namespace AnotherProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } ?>
단일 파일에 여러 네임스페이스를 정의하는 데 이 구문을 사용하는 것은 권장되지 않습니다. 다음 중괄호 형식의 구문을 사용하는 것이 좋습니다.
예제 #2 여러 네임스페이스 정의, 중괄호 구문
<?php namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace AnotherProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } ?>
실제 프로그래밍 실습에서는 동일한 파일에 여러 네임스페이스를 정의하는 것을 권장하지 않습니다. 이 방법은 주로 여러 PHP 스크립트를 동일한 파일로 병합하는 데 사용됩니다.
네임스페이스가 아닌 전역 코드를 네임스페이스 코드와 결합하려면 중괄호 구문만 사용할 수 있습니다. 전역 코드는 이름이 없는 네임스페이스 문과 함께 중괄호로 묶어야 합니다. 예:
예 #3 네임스페이스에 포함되지 않은 여러 네임스페이스 및 코드 정의
<?php namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // global code session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>
선언문을 열 때 네임스페이스 괄호 외부에 PHP 코드가 없어야 합니다.
예제 #4 여러 네임스페이스 정의 및 네임스페이스에 포함되지 않은 코드
<?php declare(encoding='UTF-8'); namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // 全局代码 session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>