- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的\命名空间
\My\Namespace
那么,我应该使用哪一个,我看到了 php documentation主要使用 My\Namespace
。
但据说 \My\Namespace
更好,因为没有歧义,而 My\Namespace
可以解析为 \RandomNamespace\My\Namespace
。
在阅读Doctrine 2 中关于此的问题 后,我开始对此感到疑惑:“Please replace 'Doctrine\XXX\YYY' with '\Doctrine\XXX\YYY' in code and document ”
那么,你有关于这方面的更多信息吗?谢谢
最佳答案
这与使用相对与绝对文件/uri 路径没有什么不同,将归结为偏好。但是,与绝对路径不同,我同意不太含糊的 \My\Namespace
,因为它永远不会中断,而相对 namespace 可能会中断。
命名空间别名,通过 use
增加相对命名空间名称的歧义。例如,我可以说:use\PDO as YourMom
然后在代码中调用 YourMom
。调用的是 \PDO
、\YourMOM
还是 YourMom
?显然别名获胜并解析为 \PDO
,假设没有冲突,但它使代码难以遵循。
编辑
证明二义性的代码示例是可能的。确保您看到全局 fallback 如果命名空间不合格则应用。
正如@netcoder 所提到的,在命名空间的声明 期间不可能出现歧义。因此,namespace My
和 namespace\My
(或交换下面的任何其他 namespace 声明)100% 相同,并且声明完全限定 namespace 。
namespace My
{
}
namespace My\Other
{
use Bob; // Resolves to \My\Other\Bob
}
namespace My\Other\NS
{
use \My\Other as Other;
use Other\NS as Duh; // This resolves to \My\Other\NS
}
namespace My\Other\Bob
{
use Other\NS as Duh; // This resolves to \Other\NS becuase the namespace doesn't exist inside \My\Other\Bob
}
关于PHP 命名空间 :\My\Namespace or My\Namespace?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601123/
我是一名优秀的程序员,十分优秀!