php - "use"语句通常应该引用 [完全限定] 类还是命名空间?

标签 php

有很多文章描述了如何在 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/

相关文章:

php - 使用 PDO 语句未将数据插入 mysql

php - PHP 如何查看类 - 仅在包含文件中?

php - 如何检查文件是否存在于 zip 存档中

php - 如何向用户发送账户充值通知,PHP+MySQL

php - 解决在 laravel 5.4 应用程序中升级到 php 7.2 的问题

php - 使用 PHP 下载远程文件到服务器

php - 使用 ajax 和 jquery 上传多个文件

php - 如果索引小于某个值,则打印所有数组字符串

php - 尝试在 kitematic 上为 docker 设置 lamp 和 wordpress

php - 在 HTML 表中显示 mysql 数据 - 表顶部显示的最新条目