在PHP中,你能否将一个类扩展到相同的名称?

14
我正在尝试找出是否可以这样做。我有一个名为Template的类,并且我想在另一个文件中扩展该类的功能,但我不想更改名称。
我应该如何声明它?是这样吗:
class template extends template
{
   // code here
   function foo()
   {

   }
}

还是我只需要这样声明它?

class template
{
   // write function
   function foo()
   {

   }
}

4个回答

37

仅当父类在另一个命名空间中时才成立。

use SomeNamespace\Template as BaseTemplate;

class Template extends BaseTemplate 
{
     //...
}

1
如果您想要使用原始类的方法/属性,可以扩展它,但必须使用不同的名称,否则会出现重新声明类的错误。
基本上:
class template {}

/* both fail with "cannot redeclare class template */

class template extends template {}

class template {}

0

-4

在这种情况下,编码特性发生了变化,它允许这样做,但不是正确和简单的方式。例如,升级软件应该直接通过类进行。 - Tejas Tank
1
链接指向不存在的页面。 - Alan Fuller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接