有没有办法在PHP中OVERLOAD类?

时间:2011-11-29 11:48:10

标签: php

我正在寻找一种通过插件类重载主项目类的方法(ofc不是整个类 - 只有少数方法,如头解析器或者sth)。 有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以扩展课程:

class A {
  public function __get($value){
    switch($value){
      case "a1": return 1; break;
      case "a2": return 2; break;
    default: // error handler goes here
      return "number out of range"; // or NULL or anything else
       }
     } // end of method __get
   } // end of class A

class B extends A {
  public function __get($value){
     switch($value){
       case "a1": return 11; break; // we overload value of 1
       case "b3": return 3; break; // we add these new properties
       case "b4": return 4; break;
     default: // check ancestor's properties
       return parent::__get($value);
       }
     } // end of method __get
   } //end of class B

答案 1 :(得分:1)

有一些覆盖方法的方法,例如: runkit。但是this answer相关问题表明这些扩展并未定期维护。