在PHP中实现静态函数

时间:2013-10-15 16:10:47

标签: php function oop inheritance static

这对所有人来说可能听起来很愚蠢,但我在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()静态,但是我不能在类Inherited中使用函数定义中的this。我也试过创建数据库类的对象,但是我认为这是不允许的,因为它给出了错误。

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

2 个答案:

答案 0 :(得分:3)

您可以简单地扩展Inheritor课程。这样,您就可以访问DatabaseInheritor方法。

class NewClass extends Inheritor {
   function otherTask() {
       //...
       $this->abcd();
       //...
   }
}

答案 1 :(得分: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() 

}