PHP提供了两种声明命名空间的语法.您可以使用没有大括号或大括号的命名空间,如下所示.
没有大括号
namespace foo/bar;
class Any{}
Run Code Online (Sandbox Code Playgroud)
有大括号
namespace foo/bar {
class Any{}
}
Run Code Online (Sandbox Code Playgroud)
这两种使用命名空间的方式的功能或行为是否存在差异,或者它们是否以相同的方式工作/运行?
在第一个变体中,每个文件只能使用一个命名空间,而第二个允许使用多个命名空间.它们可以互换使用,并且可以在单个文件中多次出现以定义多个名称空间.在这种情况下,使用花括号的唯一原因是:
namespace {
// code is in global scope
}
Run Code Online (Sandbox Code Playgroud)
除了上面的示例之外,在单个文件中具有多个名称空间的潜在缺点是使用目录和文件名来解析要加载的类的自动加载器; 因此,除非您将多个脚本文件合并为一个,否则不建议每个文件具有多个命名空间.
| 归档时间: |
|
| 查看次数: |
2640 次 |
| 最近记录: |