这对所有人来说可能听起来很愚蠢,但我在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
。我也试过创建数据库类的对象,但是我认为这是不允许的,因为它给出了错误。
有人可以建议我以正确的方式实现我的目标吗?
答案 0 :(得分:3)
您可以简单地扩展Inheritor
课程。这样,您就可以访问Database
和Inheritor
方法。
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()
}