【发布时间】:2015-09-15 06:18:44
【问题描述】:
我不熟悉在 PHP 中使用命名空间,它们看起来很简单。但是,当我在包含类、接口和闭包的大文件顶部添加命名空间时,代码完全停止工作。显然有些元素没有正确限定。
例如:
<?php
namespace MyNamespace;
interface MyInterface { ... }
class MyClass implements MyInterface { ... }
...
我阅读了 php.net 上的文档,但找不到需要在单个命名空间(全局或其他方式)下限定的元素的简单列表。
所以我的问题是,如果你只是在一个没有命名空间的文件的顶部声明一个命名空间,那么在这种情况下哪些元素需要限定?
【问题讨论】:
-
目前假定
MyInterface在MyNamespace命名空间中。要从根/全局命名空间获取MyInterface,请使用\MyInterface,这意味着MyInterface没有命名空间。如果它是命名空间但是你应该做\TheNamespace\MyInterface或在文件顶部定义\TheNamespace\MyInterface这样你就可以简单地使用MyInterface -
“代码完全停止工作”不是一个很清楚的问题描述。请向a complete example of a simple piece of code 提供您预期的结果,以及您得到的结果/错误消息。
标签: php oop namespaces