Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 하나의 파일에 여러 네임스페이스 정의하는 방법

개요

PHP에서는 확장자가 .php인 단일 파일 안에 둘 이상의 네임스페이스(namespace)를 정의할 수 있습니다. 이를 위해 공식적으로 두 가지 문법이 제공되는데, 바로 조합(combination) 문법중괄호(bracketed) 문법입니다.

조합 문법으로 여러 네임스페이스 정의하기

조합 문법에서는 네임스페이스를 위아래로 연달아 선언합니다. 첫 번째 네임스페이스에 속한 코드는 두 번째 네임스페이스 정의가 시작되기 전까지 유효합니다. 특정 네임스페이스를 현재 네임스페이스로 전환하려면 use 키워드를 사용합니다.

예제

<?php
namespace myspace1;
function hello() {
    echo "Hello World from space1\n";
}
echo "myspace1 : ";
hello();

namespace myspace\space2;
function hello(){
    echo "Hello World from space2\n";
}
echo "myspace2 : ";
hello();

use myspace1;
hello();

use myspace\space2;
hello();
?>

실행 결과

위 코드를 실행하면 다음과 같은 출력이 나타납니다.

myspace1 : Hello World from space1
myspace2 : Hello World from space2
Hello World from space2
Hello World from space2

중괄호 문법으로 여러 네임스페이스 정의하기

다음 예제에서는 중괄호({ })로 각 네임스페이스의 적용 범위를 명확히 구분하여 두 개의 네임스페이스를 정의합니다.

예제

<?php
namespace myspace1 {
    function hello() {
        echo "Hello World from space1\n";
    }
    echo "myspace1 : ";
    hello();
}

namespace myspace\space2 {
    function hello(){
        echo "Hello World from space2\n";
    }
    echo "myspace2 : ";
    hello();
}
?>

실행 결과

위 코드를 실행하면 다음과 같은 출력이 나타납니다.

myspace1 : Hello World from space1
myspace2 : Hello World from space2

주의 사항 및 권장 사항

여러 네임스페이스를 정의할 때는 조합 문법보다 중괄호 문법이 권장됩니다. 중괄호 문법 사용 시 다음 사항을 반드시 기억해야 합니다.

  • 중괄호 문법과 비중괄호(조합) 문법은 혼용할 수 없습니다.
  • 네임스페이스 중괄호 외부에는 declare 문을 제외한 어떠한 PHP 코드도 존재할 수 없습니다.
  • 전역 네임스페이스와 이름이 지정된 네임스페이스를 함께 사용해야 하는 경우에는 중괄호 문법만 허용됩니다.