소개
네임스페이스의 중요한 기능은 별칭을 사용하여 외부 정규화된 이름을 참조하거나 가져오는 기능입니다. 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; // // } ?>
포함된 파일은 파일 기준이므로 상위 파일의 가져오기 규칙을 상속하지 않습니다.