소개
네임스페이스의 중요한 기능은 별칭을 사용하여 외부 정규화된 이름을 참조하거나 가져오는 기능입니다. PHP 네임스페이스는 다음과 같은 종류의 앨리어싱 또는 가져오기를 지원합니다. -
- 클래스 이름 별칭 지정,
- 인터페이스 이름 별칭 지정,
- 네임스페이스 이름 별칭 지정
- 함수 및 상수 이름의 별칭 지정 또는 가져오기
PHP에서 앨리어싱은 use 연산자로 수행됩니다.
연산자 사용
예시
#test1.php
<?php
namespace mynamespace;
function sayhello(){
echo "Hello from mynamespace\n";
}
sayhello();
namespace mynewspace;
function sayhello(){
echo "Hello from my new space\n";
}
sayhello();
use \mynewspace\sayhello as hello;
?> 출력
Hello from mynamespace Hello from my new space
여러 사용 문 결합
예시
<?php
namespace mynamespace;
class myclass{
function test() { echo "myclass in mynamespace\n"; }
}
class testclass{
static function test() { echo "testclass in mynamespace\n"; }
}
use \mynamespace\myclass as myclass, \mynamespace\testclass;
$a=new myclass();
$a->test();
$b=new \mynamespace\testclass();
$b->test();
?> 출력
myclass in mynamespace testclass in mynamespace
가져오기 및 동적 이름
가져온 클래스의 이름을 동적으로 대체
예시
<?php
namespace mynamespace;
class myclass{
function test() { echo "myclass in mynamespace\n"; }
}
class testclass{
static function test() { echo "testclass in mynamespace\n"; }
}
use \mynamespace\myclass as myclass;
$a=new myclass;
$b='myclass';
$c=new $b;
?> use 키워드는 가장 바깥쪽이나 전역 범위 또는 네임스페이스 선언 내부에서 선언해야 합니다. 가져오기 프로세스는 런타임이 아닌 컴파일 시간에 수행됩니다. 따라서 범위를 차단할 수 없습니다. 다음 사용은 불법입니다.
예시
<?php
function myfunction(){
use myspace\myclass;
//
//
}
?> 포함된 파일은 파일 기준이므로 상위 파일의 가져오기 규칙을 상속하지 않습니다.