php多个class_alias具有相同的类名

时间:2012-11-09 17:33:05

标签: php namespaces alias

我正在尝试级联扩展通过class_alias注册的类。我得到一个“无法重新声明课程”的警告,我想知道我想做什么甚至可以用PHP。

我的目标是能够创建一个继承的“链”。 One\one是基类,Two\one对此进行了扩展,但也将One\one替换为别名的类。

这样,任何数量的类都可以扩展特定命名空间中的主类,而无需了解链中其他类已经扩展的其他类。

one.php     

namespace One;

class_alias('One\one', 'one');

class one {}

two.php     

namesapce Two;

class_alias('Two\one', 'one');

class one extends \one{}

的index.php

<?php
require('one.php');
require('two.php');

$instance = new \one();
var_dump($instance);

1 个答案:

答案 0 :(得分:1)

在同一名称空间中不能有两个具有相同名称的类。您正尝试通过one调用在全局命名空间中为名称class_alias分配两次。

您正在使用命名空间,然后尝试绕过它们。有什么需要这样做?