有很多文章描述了如何在 PHP-5.3+ 中使用命名空间,我对 use
语句中的约定特别感兴趣。
大多数文章没有指出的是,use
可以引用命名空间或类。因此,要在 PSR-0 位置 Foobar/Helper/Helper.php 中引用我的类,我可以这样做:
use \Foobar\Helper; // This is a namespace
class Whatever {
...
Helper\Helper::MyHelperMethod();
或者这个:
use \Foobar\Helper\Helper; // This is a class
class Whatever {
...
Helper::MyHelperMethod();
我没有看到他们在每个 use
语句中使用的文档,这通常会导致猜测。
那么,使用一种方法或另一种方法是不好的做法吗?或者也许混合概念?或者这可能只是人们很少记录的事情之一?
或者我只是误解了整个问题?
最佳答案
如果你有一个命名空间\Foobar\Helper
,那么
use \Foobar\Helper;
允许您使用 Helper
作为命名空间限定符访问 \Foobar\Helper
命名空间中的所有 类。线路
use \Foobar\Helper\Helper;
让您可以更好地控制要在没有 namespace 限定符的情况下访问哪些类。另一方面,在开发过程中保持 use
声明与代码同步是非常繁琐的。第三,它作为文件中存在的依赖项的文档。
要区分 use
语句是指命名空间还是类,Eclipse PDT 等 IDE 会有所帮助。
关于php - "use"语句通常应该引用 [完全限定] 类还是命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19621399/