正如php reference
使用namespace关键字声明命名空间。包含的文件 命名空间必须先在文件顶部声明命名空间 任何其他代码 - 有一个例外:declare关键字。
但是我们在参考资料中进一步提供了以下代码段:
<?php
namespace MyProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
namespace AnotherProject; //This namespace declaration doesn't located at the top of the file. It's unclear.
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
答案 0 :(得分:1)
您可以稍后在文件中切换到另一个命名空间,但如果您 使用命名空间,则必须将命名空间声明为文件。即,这不工作:
<?php
echo 'foo';
namespace Bar;
echo 'bar';
答案 1 :(得分:0)
在MyProject
引用MyProject
命名空间的前三行中声明一个,而AnotherProject
下的其他三个引用AnotherProject
命名空间。
如果至少有一个名称空间被声明为top,则文件将被正确解析(名称空间将以dinamically方式切换)
为了更清楚,你甚至可以这样做
<?php
namespace MyProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
namespace AnotherProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
?>
但强烈建议不要在同一个php脚本中声明两个名称空间