我对命名空间很新(是的,我已经阅读了
PHP文档命名空间部分).我想知道名称空间的范围与多个文件有关.当我在具有全局代码的文件中包含或要求该文件时,名称空间是否有效超出一个文件?此外,这对全局代码有何影响?我是否会被迫使用全局代码更改语法.
namespace A; class Abc { ... }
然后让我说我有一些带有全局代码的文件,称之为main.PHP:
include("A.PHP"); class Abc { ... } $abc = new Abc(); // Should be global Abc,right? $abcFromNameSpace = new A\Abc(); // Should be namespace Abc,right? ...
作为一个后续问题,我也想知道如果我要将带有名称空间的文件包含在具有名称空间的另一个文件中,将会发生什么情况,与上面的示例相反,其中main.PHP只有全局代码.这会是这样的:
namespace A; class Abc { ... }
namespace B; include("A.PHP"); class Abc { ... } $abc = new B\Abc(); // Should be namepsace B Abc,right? $abcFromNameSpace = new A\Abc(); // Should be namespace A Abc,right?