【问题标题】:Why Use Namespaces (PHP)为什么使用命名空间 (PHP)
【发布时间】:2014-09-22 05:39:03
【问题描述】:

我不太明白为什么需要使用命名空间。好吧,我从其他人的问题中得到了一些原因,但我不确定我是否理解它。

从我的阅读来看,似乎使用命名空间的唯一原因是类名可以重新用于具有不同模块的程序?对吗?

eg) 如果模块“Lalaland”有一个名为“pillows”的类。如果我要加载两个模块,我将无法在名为“Slumberland”的不同模块中使用名为“枕头”的类?所以解决方法是创建一个命名空间 Lalaland 和一个命名空间 Slumberland。在这些命名空间中,我可以使用“枕头”类吗?我说对了吗?

【问题讨论】:

  • 查看packagist.org - 数千个贡献的 PHP 库。这就是我们需要命名空间的原因。
  • 您在底部的段落基本上就是它 - 命名空间保证名称的唯一性。既然实际上在 PHP 中分享东西已经变得很普遍,这真的很重要。
  • 但是在你自己的程序中,命名空间也可以通知你的类层次结构的布局,这样你就可以make use of class autoloading tools实现公认的标准。

标签: php namespaces


【解决方案1】:

没错,它是用来防止命名冲突的,如果我们没有这个并加载到库中,php 将不知道你在说哪个类。这将导致错误或只是覆盖会破坏模块的类。命名空间使您不必编辑与您正在使用的另一个同名的每个框架。

【讨论】:

    【解决方案2】:

    我会说主要用途是“组织”和“命名”

    许多事情可能需要parse 方法或函数,并且 而不是发明parserX_parse 函数甚至(观看类名)ParserX::parse

    即你可以使用命名空间ParseLibA,其中Parser 有一个parse 方法和一个SpeedParseLib,它的作用相同,没有名称冲突

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 2016-05-16
      • 2015-02-01
      • 2012-12-04
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2011-12-10
      相关资源
      最近更新 更多