전역 공간(Global Space)

전역 공간(Global Space)

적용 버전: PHP 5 >= 5.3.0, PHP 7, PHP 8

네임스페이스를 아무것도 정의하지 않으면, 모든 클래스와 함수 정의는 전역 공간(global space)에 놓여요. 네임스페이스가 지원되기 전의 PHP가 바로 그랬죠. 이름 앞에 \(백슬래시)를 붙이면, 네임스페이스 안에 있더라도 그 이름을 전역 공간에서 가져오도록 지정할 수 있어요.

예제 #1 — 전역 공간 지정(global space specification) 사용하기

<?php
namespace A\B\C;

/* This function is A\B\C\fopen */
function fopen() {
     /* ... */
     $f = \fopen(...); // call global fopen
     return $f;
}

이 예제에서 fopen()A\B\C 네임스페이스 안에 정의된 함수예요. 그런데 함수 안에서 \fopen(...)처럼 앞에 백슬래시를 붙여 호출하면, A\B\C\fopen이 아니라 **전역의 fopen**을 가리키는 거죠. 즉 네임스페이스 문맥 안에 있어도, 백슬래시 하나로 "이 이름은 전역 공간에서 찾아라"고 명시하는 겁니다.