3

我正在尝试级联扩展通过class_alias. 我收到“无法重新声明类”警告,想知道我想要做的事情在 PHP 中是否可行。

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

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

一个.php

namespace One;

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

class one {}

二.php

namesapce Two;

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

class one extends \one{}

索引.php

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

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

1 回答 1

1

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

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

于 2012-11-09T20:32:26.987 回答