Php 我可以从父类调用子类的构造函数吗?

Php 我可以从父类调用子类的构造函数吗?,php,class,object,Php,Class,Object,在下面的代码中,foo的构造函数能否调用child1或child2的构造函数 class child1 extends foo{ function child1(){ do_stuff(); } } class child2 extends foo{ function child2(){ do_stuff(); } } class foo{ function foo(){ // run child1, child2 etc... ? is it p

在下面的代码中,
foo
的构造函数能否调用
child1
child2
的构造函数

class child1 extends foo{
  function child1(){
    do_stuff();
  }
}

class child2 extends foo{
  function child2(){
    do_stuff();
  }
}

class foo{
  function foo(){
    // run child1, child2 etc... ? is it possible?
  }
}

new foo();

不,您只能从父类访问类,而不能从父类访问类。父类不知道这些子类是否存在


如果你解释了你要做的事情的用例,有人可能会建议一个更好的方法。

不,你只能从父类访问类,而不能从父类访问类。父类不知道这些子类是否存在


如果你解释了你要做的事情的用例,有人可能会建议一个更好的方法。

在我们讨论如何解决你的问题之前,我认为我们应该澄清一下你在代码中展示的OOP

在您的示例中,类foo是基类,它具有所有类型foo通用的功能和属性。例如,Foo可能是一棵树。所有树木都有树干、根、枝,并将阳光转化为能量

现在,您的child1和child2类将成为foo的核心,并具有与foo不同或补充的特定内容。例如,child1可能是一棵“是”树的橡树,但添加了leaf属性、acorn属性和hibernate属性

Child1和Child2知道关于foo的一切,但是foo不知道Child1和Child2的存在


现在,如果我理解了您的意图,您可以通过实例化您的child1和child2类,并从另一个类或方法/函数中调用这些对象上所需的任何方法来实现这一点。

在我们讨论如何解决您的问题之前,我认为我们应该澄清一下您在代码中显示的OOP

在您的示例中,类foo是基类,它具有所有类型foo通用的功能和属性。例如,Foo可能是一棵树。所有树木都有树干、根、枝,并将阳光转化为能量

现在,您的child1和child2类将成为foo的核心,并具有与foo不同或补充的特定内容。例如,child1可能是一棵“是”树的橡树,但添加了leaf属性、acorn属性和hibernate属性

Child1和Child2知道关于foo的一切,但是foo不知道Child1和Child2的存在


现在,如果我理解了您要做的事情,您可以通过实例化您的child1和child2类并从另一个类或方法/函数中调用这些对象上所需的任何方法来实现它。

反之亦然-您可以在扩展类中调用父方法。你们到底想做什么?反之亦然——你们可以在扩展类中调用父方法。你到底想做什么?我假设你在第一句中是指“函数”而不是“类”?我假设你在第一句中是指“函数”而不是“类”?