我有一个需要()'sa命名空间的文件,如下:
<?php
require_once('Beer.php'); // This file contains the Beer namespace
$foo = new Beer\Carlsburg();
?>
Run Code Online (Sandbox Code Playgroud)
我想将Beer命名空间直接放在同一个文件中,就像这个(unworking)示例:
<?php
namespace Beer {
class Carlsburg {}
}
$foo = new Beer\Carlsburg();
?>
Run Code Online (Sandbox Code Playgroud)
但是,PHP解释器抱怨说 No code may exist outside of namespace.因此我可以$foo在一个命名空间中包装声明,但是我还必须在该命名空间中包装Beer来访问它!这是我试图避免的一个工作示例:
<?php
namespace Main\Beer {
class Carlsburg {}
}
namespace Main {
$foo = new Beer\Carlsburg();
}
?>
Run Code Online (Sandbox Code Playgroud)
有没有办法Beer在文件中包含命名空间的代码,但是没有将$foo声明包装在自己的命名空间中(将其保留在全局命名空间中)?
谢谢.
Man*_*eUK 16
您应该使用全局命名空间:
<?php
namespace Beer {
class Carlsburg {}
}
namespace { // global code
$foo = new Beer\Carlsburg();
}
?>
Run Code Online (Sandbox Code Playgroud)
看这里 - > http://php.net/manual/en/language.namespaces.definitionmultiple.php
| 归档时间: |
|
| 查看次数: |
6540 次 |
| 最近记录: |