소개
PHP에서 namespace 키워드는 네임스페이스를 정의하는 데 사용됩니다. 또한 현재 네임스페이스의 특정 요소에 대한 액세스를 요청하는 연산자로 사용됩니다. __NAMESPACE__ 상수는 현재 네임스페이스의 이름을 반환합니다.
__NAMESPACE 상수
명명된 네임스페이스에서 __NAMESPACE__는 이름을 반환하고 전역 및 명명되지 않은 네임스페이스의 경우 빈 문자열을 반환합니다.
예시
#test1.php <?php echo "name of global namespace : " . __NAMESPACE__ . "\n"; ?>
출력
빈 문자열이 반환됩니다.
name of global namespace :
명명된 네임스페이스의 경우 해당 이름이 반환됩니다.
예시
<?php namespace myspace; echo "name of current namespace : " . __NAMESPACE__ . "\n"; ?>
출력
name of current namespace : myspace
동적 이름 구성
__NAMESPACE__는 이름을 동적으로 구성하는 데 유용합니다.
예시
<?php namespace MyProject; class myclass { function hello(){echo "hello world";} }; $cls="myclass"; function get($cls){ $a = __NAMESPACE__ . '\\' . $cls; return new $a; } get($cls)->hello(); ?>반환
출력
위의 코드는 다음 출력을 보여줍니다.
hello World
네임스페이스 연산자
namespace 키워드는 self와 동일하게 사용할 수 있습니다. 클래스가 현재 네임스페이스 또는 하위 네임스페이스에서 요소를 명시적으로 요청하는 연산자입니다.
예시
<?php namespace Myspace; class myclass { function hello(){echo "hello Myspace";} } $a = new namespace\myclass(); $a->hello(); ?>
출력
위 코드는 다음 출력을 보여줍니다.
hello Myspace
전역 네임스페이스에서 네임스페이스 연산자는 전역 네임스페이스인 현재 네임스페이스의 함수/클래스를 참조합니다.
예시
<?php class myclass { function hello(){echo "hello global space";} } $a = new namespace\myclass(); $a->hello(); ?>
출력
위 코드는 다음 출력을 보여줍니다.
hello global space