在PHP中,您可以将类扩展为相同的名称吗?

时间:2009-07-14 23:29:46

标签: php class extends

我正试图找出我能做到或不做的天气。我有一个名为Template的类。我想在另一个文件中扩展该类功能,但我不想更改名称。

我是否将其声明为

class template extends template
{
   // code here
   function foo()
   {

   }
}

class template extends template { // code here function foo() { } }

或者我只是这样宣布它?

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

   }
}

4 个答案:

答案 0 :(得分:28)

仅当父类位于另一个名称空间中时。

use SomeNamespace\Template as BaseTemplate;

class Template extends BaseTemplate 
{
     //...
}

答案 1 :(得分:1)

如果你想使用原始类的方法/属性,你可以扩展它,但是你必须使用不同的名称,否则你会收到关于重新声明该类的错误。

基本上:

class template {}

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

class template extends template {}

class template {}

答案 2 :(得分:0)

我很确定你做不到。我建议你做以下事情:

class Template extends TemplateBase
{
    // code
}

请参阅:http://www.php.net/manual/en/language.oop5.php

答案 3 :(得分:-3)

您可能需要查看classkit