2014-12-02 2 views
0

글로벌 공간에서 기능을 요구하는 이유를 이해하려고합니다. PHP 설명서에서글로벌 공간에서 기능을 사용해야하는시기는 언제입니까?

예 :

namespace A\B\C; 

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

경우 또는 왜 내가이 예처럼 글로벌 공간에서 기능을 필요에? 누군가 분명히 해줄 수 있습니까?

답변

2

내부 A\B\Cfopen의 네임 스페이스 호출이이 네임 스페이스에서 해결됩니다. 따라서, 명시 적으로 지정된 글로벌 네임 스페이스없이 통화가 무한 재귀으로 이어질 것입니다 :

function fopen() { 
    $f = fopen(...); // ERROR RECURSIVE CALL TO ITSELF 
    $f = \A\B\C\fopen(...); // ERROR THE SAME AS ABOVE 
    $f = \fopen(...); // call global fopen ⇛ WORKS 

주의 사항, 현재 이름 공간에서이 이름을 가진 기능이없는 경우 명시 적으로 글로벌 네임 스페이스를 지정할 필요가 없다는 것을.

관련 문제