如何避免不能为同名的2个不同类重新声明类

时间:2010-10-06 09:50:45

标签: php class namespaces include

我正在尝试将一些函数从phpBB板包含到我的应用程序中,就像单次登录一样。但是如果我包含common.php它会说“无法重新声明类用户”,因为我的应用程序已经有了一个类用户。有办法避免这种情况吗?我尝试了一些命名空间,但我从未使用它们。

所以我需要一种方法来包含2个具有相同名称的类。

3 个答案:

答案 0 :(得分:3)

Namespaces是唯一的方法。

答案 1 :(得分:3)

正如在这个问题的其他答案中提到的那样,如果不重命名你的课程或者让命名空间有效(例如确保你拥有正确的PHP版本),就无法解决这个问题。

一个好的一般习惯是按习惯命名你的类名。例如,如果您查看Zend包,您会看到每个类名都以Zend_为前缀,例如Zend_MailZend_MimeZend_Mime_Part。这意味着(a)具有相关功能的类之间存在逻辑关系,(b)类不太可能与您或其他框架产生的类冲突。此模式后面跟着其他项目,例如PEAR。

这一要求因PHP 5.3的引入而过时。但是,5.3尚未被广泛采用,尤其是共享托管服务提供商,这种解决方案对您目前的情况来说可能是一个很好的解决方案。

答案 2 :(得分:-4)

只需重命名您的课程。没什么大不了的。