Php多类扩展一个

时间:2014-08-22 13:43:18

标签: php function class object extends

可以扩展php类(多个类扩展一个)。

----- ------的init.php

include_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/functions.php';
include_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/template.php';
include_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/debug.php';

----- ------的functions.php

    class Functions{
         // content here
      }

----- Template.php ------

    class Template extends Functions{
          public $sTitle = "";

          public function setTitle($title){$this->sTitle = $title;}
        }

----- debug.php ------

class debug extends Functions{
        // content here
            }

Functions:Template->setTitle('my title');

如果你知道更好的做法,请与我分享。 (这些类位于"类函数"文件中包含的不同文件中)

2 个答案:

答案 0 :(得分:1)

当然可以。实际上,您可以使用minimal compiling example

进行自我测试
<?php

class SuperClass {

  public function __construct(){ echo 'I am the common superclass.  '; }
}

class LittleClass extends SuperClass{}
class LittleLittleClass extends SuperClass{}

new LittleClass();
new LittleLittleClass();

除此之外,调用类Functions闻起来很像很糟糕的设计。如果要在代码库中包含通用函数,请考虑在其他地方而不是在继承链中收集它们。

答案 1 :(得分:1)

你可以包含对超类没有任何作用的函数setTitle()(在你的情况下是函数)。然后在模板中,您可以覆盖其功能。在这种情况下,在'debug'类上运行此函数是安全的。即。

----init.php------

include_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/functions.php';
include_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/template.php';
include_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/debug.php';

-----Functions.php------

    class Functions{
         // content here
    public function setTitle($title){}
      }

-----Template.php------

    class Template extends Functions{
          public $sTitle = "";

          public function setTitle($title){$this->sTitle = $title;}
        }

-----debug.php------

class debug extends Functions{
        // content here
            }

Functions:Template->setTitle('my title');