gpt4 book ai didi

PHP 命名空间 :\My\Namespace or My\Namespace?

转载 作者:可可西里 更新时间:2023-11-01 12:51:53 27 4
gpt4 key购买 nike

  • 我的\命名空间
    • \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 Mynamespace\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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com