Mat*_*oli 7 php namespaces php-5.3
My\Namespace
\My\Namespace那么,我应该使用哪一个,我看到php文档主要使用My\Namespace.
但据说它\My\Namespace更好,因为不含糊,而My\Namespace可以解决为\RandomNamespace\My\Namespace.
在阅读了Doctrine 2中有一个问题后,我开始怀疑这个问题:" 请在代码和文档中用'\ Doctrine\XXX\YYY'替换'Doctrine\XXX\YYY' "
那么,你有关于此的更多信息吗?谢谢
这与使用相对与绝对文件/uri 路径没有什么不同,并且将归结为偏好。但是,与绝对路径不同,我同意不那么模糊的\My\Namespace说法,因为它永远不会中断,而相对名称空间可以。
命名空间别名,通过use添加相对命名空间名称的歧义。例如,我可以说:use \PDO as YourMom然后YourMom在代码中调用。难道\PDO,\YourMOM或者YourMom它是被称为?显然别名获胜并解析为\PDO,假设没有冲突,但它使代码难以遵循。
编辑
证明歧义的代码示例是可能的。如果命名空间不合格,请确保您看到应用了全局回退。
正如@netcoder 所提到的,在命名空间的声明过程中不可能有歧义。因此,namespace My和namespace \My(或交换下面的任何其他命名空间声明)100% 相同,并且声明完全限定了命名空间。
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1649 次 |
| 最近记录: |