Php 如果两个类';你在不同的文件夹里吗?

Php 如果两个类';你在不同的文件夹里吗?,php,class-names,Php,Class Names,我想知道,如果两个类位于不同的子文件夹中,那么在PHP中使用相同名称的两个类是否有什么问题,除了错误编辑错误文件的明显“人为因素”之外 我在网上的这里和其他地方寻找了与此相关的其他帖子,但我没有找到任何能够回答这个具体问题的帖子。不过,我确实觉得这很有帮助,事实上它解决了我的另一个问题。即使在同一个文件夹中,也可能有同名的类 但请确保一次只在PHP脚本中加载一个类 它们不能同时加载到同一脚本中 PHP不知道您是否创建了两个同名的类,但事实是PHP不会在同一个脚本中加载它们。一次可以使用一个类 您

我想知道,如果两个类位于不同的子文件夹中,那么在PHP中使用相同名称的两个类是否有什么问题,除了错误编辑错误文件的明显“人为因素”之外


我在网上的这里和其他地方寻找了与此相关的其他帖子,但我没有找到任何能够回答这个具体问题的帖子。不过,我确实觉得这很有帮助,事实上它解决了我的另一个问题。

即使在同一个文件夹中,也可能有同名的类

但请确保一次只在PHP脚本中加载一个类

它们不能同时加载到同一脚本中

PHP不知道您是否创建了两个同名的类,但事实是PHP不会在同一个脚本中加载它们。一次可以使用一个类


您还可以查看php。

我相信在实例化这些类时会发生冲突。实际上,我从未测试过它,但PHP的行为不像Java,在Java中,您可以将具有相同名称的类放在不同的包中,并在实例化时指定包来区分它们…

事实上,您可以,但也可以考虑重载和接口…

这就是名称空间的作用。


这允许您区分同名的两个类。

当然,您可以在相同文件夹或具有相同类名的不同文件夹中创建文件,但您只能在一个文件中使用一个实现


如果您确实需要为这两个类指定相同的名称,并且必须在一个文件中使用它们,那么解决方案可能是名称空间

关键在于“人为因素”。

不仅编辑错误的文件问题,而且在同一代码中使用这些类都将是一团混乱。

即使在同一文件夹中也可能有同名的类。下面是代码示例

文件名:namespace.php

<?php
namespace MyProject {

class Connection {
public function __construct(){
    echo 'My Project class call';
    }
}

function connect() {
echo 'My Project connect function.';
}

}

namespace AnotherProject {

class Connection {
public function __construct(){
    echo 'Another Project class call';
    }
}

function connect() {
echo 'Another Project connect function.';
}

}
?>

另一个文件,我们在其中使用此命名空间。 文件名:myapp.php

<?php 

require 'namespace.php';

//create a class object
$obj = new MyProject\Connection;

//calling a function 
MyProject\connect();

//calling a another function
AnotherProject\connect();
?>


谢谢,我会研究名称空间的问题。感谢所有其他回答的人!在我的例子中,我认为我不太可能需要两个同名的类,但我认为现在就去发现,而不是事后去发现是否有可能出现问题是明智的!这是真的,我最近才开始用OOPHP和MVC构建web应用,这是一个奇妙而有益的学习曲线。但正如您所提到的,真正的教训是开发团队的可管理性。我认为总是使用唯一的类名将是一个很好的实践,如果没有其他事情的话