1

这对所有人来说可能听起来很愚蠢,但我正面临着 PHP 中的静态函数的这个问题。PHP 中的 OO 编程仍然是新手,因此需要一些帮助。

我有一个 DB 类,它处理我的应用程序中的连接和 crud 操作的所有功能。我有另一个类,它扩展了 DB 类并使用其中的方法。

     class Database(){

          function db_connect(){
                //body
            }
      }

    /*****The inheritor class*****/  
    class Inheritor extends Database{
         function abcd(){
                  $this->db_connect();         //This works good
          }

     }

但是现在我必须function abcd(){}在另一个类中使用它,因为它执行相同的任务。新类就是这个,例如它也扩展了数据库类:

     class newClass extends Database{

           function otherTask(){
               //Here I need to call the function abcd();
            }
     }

我尝试制作function abcd()静态,但后来我无法this在类 Inheritor 的函数定义中使用。我也尝试创建数据库类的对象,但我认为这是不允许的,因为它给出了错误。

有人可以建议我实现我想要实现的目标的正确方法吗?

4

2 回答 2

3

您可以简单地扩展Inheritor类。这将使您可以访问DatabaseInheritor方法。

class NewClass extends Inheritor {
   function otherTask() {
       //...
       $this->abcd();
       //...
   }
}
于 2013-10-15T16:26:42.490 回答
2

当您扩展一个类时,新类继承以前的方法。例子:

Class database{
Method a(){}
Method b(){}
Method c(){}
}
Class inheritor extends database{
//this class inherit the previous methods
    Method d(){}
}
Class newCalss extends inheritor{
    //this class will inherit all previous methods
    //if this class you extends the database class you will not have 
    //the methods d() 

}
于 2013-10-15T16:32:17.587 回答