我有一个文件,需要使用require()函数引入一个命名空间,如下所示:
<?php
require_once('Beer.php'); // This file contains the Beer namespace
$foo = new Beer\Carlsburg();
?>
我想直接将Beer命名空间放在同一个文件中,像这个(无法工作的)示例:
<?php
namespace Beer {
class Carlsburg {}
}
$foo = new Beer\Carlsburg();
?>
然而,PHP解释器报错:No code may exist outside of namespace
。因此,我可以将$foo
的声明放在命名空间里面,但这样就必须包裹Beer在同一个命名空间中才能访问它!下面是一个可行的示例,但我想避免这种写法:
<?php
namespace Main\Beer {
class Carlsburg {}
}
namespace Main {
$foo = new Beer\Carlsburg();
}
?>
有没有办法在文件中包含Beer
命名空间的代码,但是不将$foo
声明包装在它自己的命名空间中(让它保留在全局命名空间中)?
谢谢。