네임스페이스 정의

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

유효한 PHP 코드는 네임스페이스에 포함될 수 있지만 클래스(추상 및 특성 포함), 인터페이스, 함수 및 상수와 같은 유형의 코드만 네임스페이스의 영향을 받습니다.

네임스페이스는 namespace 키워드를 사용하여 선언됩니다. 네임스페이스를 포함하는 파일은 다른 코드보다 먼저 파일 맨 위에 네임스페이스를 선언해야 합니다. 단, 한 가지 예외는 declare 키워드입니다.

예제 #1 단일 네임스페이스 선언

                  
<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }

?>
                  
                

참고: 정규화된 이름(즉, 백슬래시로 시작하는 이름)은 네임스페이스 선언에서 허용되지 않습니다. 이러한 구성은 상대 네임스페이스 표현식으로 해석되기 때문입니다.

네임스페이스 선언 전에 허용되는 유일한 코드 구성은 소스 파일의 인코딩을 정의하기 위한 declare문입니다. 또한 추가 공백을 포함하여 비 PHP 코드가 네임스페이스 선언 앞에 올 수 없습니다.

예제 #2 단일 네임스페이스 선언

                  
<html>
<?php
namespace MyProject; // fatal error - namespace must be the first statement in the script
?>
                  
                

또한 다른 PHP 구성과 달리 동일한 네임스페이스를 여러 파일에 정의할 수 있으므로 파일 시스템에서 네임스페이스의 내용을 분할할 수 있습니다.