네임스페이스 – 4.내장 네임스페이스

내장 네임스페이스

php v5.3 이전의 네임스페이스

php v5.3 이전에도 내장된 네임스페이스가 존재하고 있었습니다.

test() 함수 내에서 동일한 변수이름 $str이 두 번 사용되고 있지만 하나는 지역 네임스페이스에서, 다른 하나는 전역 네임스페이스의 이름을 참조합니다. 따라서 이 소스를 실행하면 아래와 같이 나타날 것입니다.

  • 전역 네임스페이스 – 함수(또는 클래스) 바깥쪽에서 정의된 이름
  • 지역 네임스페이스 – 함수(또는 메소드) 안에서 정의된 이름 또는 클래스 안에서 정의된 이름

이와 같이 php v5.3 이전에도 내장된 네임스페이스가 존재하고 있어서 묵시적(implicit)으로 사용하여 왔으나, php v5.3 부터는 프로그래머가 새로운 네임스페이스를 직접 명시적(explicit)으로 정의하여 사용할 수 있도록 하였습니다.

전역 네임스페이스(Global namespace; Global space)

네임스페이스를 지원하는 php v5.3에서 네임스페이스가 정의되지않은 클래스 및 함수는 전역 네임스페이스에 존재합니다. 전역 네임스페이스는 특정한 이름(identifier)을 가지고 있지 않기 때문에 네임스페이스_식별자::함수명과 같은 식으로 호출할 수가 없으므로 이 때는 네임스페이스_식별자없이 범위지정자 ::로 시작되는, 즉 ::함수명과 같은 식으로 전역 네임스페이스에 존재하는 함수를 호출합니다.

< 출처:php.net >

Note:
2009년 6월 30일 PHP 5.3.0 정식버전이 출시되면서 네임스페이스 구분자(namespace separator)가 ‘::’ 대신에 ‘\’로 변경되었습니다.

답글 남기기