我试图理解需要全局空间函数的原因。
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
请注意,如果当前命名空间中没有具有此名称的函数,则无需显式指定全局命名空间。