【发布时间】:2011-03-27 19:42:10
【问题描述】:
我正在尝试使用命名空间。我想在不同的命名空间中扩展一个类。类的名称是相同的。示例:
家长:
namespace Base;
class Section extends Skeleton {
protected $id;
protected $title;
protected $stylesheet;
}
孩子:
namespace Base2;
use \Base\Section;
class Section
extends \Base\Section {
}
这是一个使用 Doctrine 2 和 Zend Framework 的应用程序。 Base/Section 使用的 Skeleton 类只是一个包含魔术方法(__get、_set 等)的抽象类。
当我尝试实例化一个 \Base2\Section 类时,它会抛出一个错误:
Fatal error: Cannot declare class Base2\Section because the name is
already in use in /var/www/test/application/Models/Base2/Section.php
on line 7
有什么想法吗?
【问题讨论】:
-
有这样的命名方案是不是有点混乱?
-
是的,但它不是真正的命名方案。只有 Section 部分是真实的。命名空间是随机的。
-
@Rene:你确定他们不是任意吗?
标签: php namespaces