Php 理解`名称空间`

Php 理解`名称空间`,php,Php,我很难理解名称空间。这没有任何意义。然而,让我带你通过我的经验,我学到的知识 问题:如果必须包含每个文件,名称空间有什么意义?为什么我不能说嘿,这是主根目录,我想加载Core文件夹中的所有类。就我在c#方面的经验而言,我将能够使用“调用”名称空间/类作为引用,或作为新类 因为这太麻烦了,我在每个文件夹中创建了一个index.php文件,其中包含该文件夹中的所有文件。这有点像我自己的person类加载器 我只是一点也不明白 包含命名空间 包含类“没有意义” 使用\namespace\to\clas

我很难理解名称空间。这没有任何意义。然而,让我带你通过我的经验,我学到的知识

问题:如果必须
包含每个文件,名称空间有什么意义?为什么我不能说嘿,这是主根目录,我想加载
Core
文件夹中的所有类。就我在c#方面的经验而言,我将能够使用“调用”名称空间/类作为引用,或作为新类

因为这太麻烦了,我在每个文件夹中创建了一个index.php文件,其中包含该文件夹中的所有文件。这有点像我自己的person类加载器

我只是一点也不明白

包含命名空间

包含类“没有意义”

使用\namespace\to\class作为类

$Class = new Class();
如果你需要的话,我就是不明白“use”的用法。这就是我在视觉上看到它的方式,我不喜欢这个概念,我希望这不是概念,但我需要有人解释一下。我需要完成一个项目。谢谢

  • 很抱歉,此帖子未经修改。我目前正在使用我的手机,也不知道密码

因为如果包含的文件具有相同名称的全局变量/函数(不一定常见,但很可能),它们会发生冲突,编译器将不知道要引用哪个

如果所有内容都在名称空间内,除非名称空间名称相同,否则不会有任何命名冲突,因为您需要引用名称空间名称和函数名称

在您开始编写包含其他库的大型程序之前,这不是一个问题,但这肯定是一个需要创建名称空间的问题。

来自:

在PHP世界中,名称空间旨在解决库和应用程序作者在创建可重用代码元素(如类或函数)时遇到的两个问题:

  • 创建的代码与内部PHP类/函数/常量或第三方类/函数/常量之间的名称冲突
  • 能够别名(或缩短)超长名称,旨在缓解第一个问题,提高源代码的可读性
  • PHP名称空间提供了一种对相关类、接口、函数和常量进行分组的方法

    有关更多信息和一些示例,请参见链接的手册页面


    名称空间相互补充,有助于避免您抱怨的包含。

    您是否在分类中使用
    包含
    /
    要求
    ,并添加
    使用
    ?通常您有一个自动加载器,需要为您提供所有文件。因此,在项目中的文件中,只需
    使用Namespace\Class$obj=新类()。要使一个简单的自动加载器运行,只需使用composer,您也可以使用它来安装/管理依赖项。use语句也是可选的<代码>使用名称空间\类$obj=新类()
    $obj=newnamespace\Class()完全相同use语句的明显优点是使用文件中的类将需要更少的代码。在顶部有一个文件使用的类的列表也是很好的。