PHP:子类中的访问方法
我想知道当我在同一个类的另一个子类中时,如何访问一个类的子类中的方法I。。。 例如: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... } 如您
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()方法更明智吗?第二种方法有效,将实例放入该方法中。谢谢