我什么时候需要全局空间的功能


When should i require function from global space?

我试图理解需要全局空间函数的原因。

PHP手册中的示例:

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

在这种情况下,或者为什么我需要像本例中那样的全局空间中的函数? 有人可以澄清一下吗?

> 在命名空间A'B'C内部,对fopen的调用将在此命名空间中解析。因此,如果没有显式指定的全局命名空间,调用将导致无限递归:

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

请注意,如果当前命名空间中没有具有此名称的函数,则无需显式指定全局命名空间。