PHP:子类中的访问方法

PHP:子类中的访问方法,php,class,methods,Php,Class,Methods,我想知道当我在同一个类的另一个子类中时,如何访问一个类的子类中的方法I。。。 例如: class foo { } class bar extends foo { public function something() { //do something here } } class soap extends foo { $this->something(); //This is the method I wanna call... } 如您

我想知道当我在同一个类的另一个子类中时,如何访问一个类的子类中的方法I。。。 例如:

class foo {

}

class bar extends foo {
    public function something() {
        //do something here
    }
}

class soap extends foo {
    $this->something();   //This is the method I wanna call...
}
如您所见,我想从另一个子类访问子类的方法。
如何在PHP中执行此操作?

您可以直接执行,但前提是
soap
也是
bar
的子类:

class soap extends bar {
    public function someFunction() 
    {
        $this->something();   // This will work
    }
}
如果不是,您仍然有一个选项:获取
bar
的实例,然后对其调用该方法:

class soap extends foo {
    public function someFunction(bar $bar) 
    {
        $bar->something();   // This will also work
    }
}

除此之外,你别无选择。由于
bar
不在
soap
的继承链中,因此无法仅从
soap
的任何方法中使用
$this
引用
某些内容。。。我只想知道如何从任何其他子类访问bar中的方法您的soap类必须扩展foo类。除非
bar::something()
是静态的,否则您需要有
bar
的实例才能调用
something()
<代码>soap
彼此无关。它们共享同一父类的事实毫无意义。@Federico。。如果我这样运行它,它会给我“方法不存在”错误…@RocketHazmat。。。那么,您认为在父类中设置something()方法更明智吗?第二种方法有效,将实例放入该方法中。谢谢