[英]php polymorphism - Call a parent function in polymorphed child function - problem with get_class($this)
[英]php polymorphism - Call a parent function in polymorphed child function
这是父类:
class Event {
public function getLang($lang){
$sql = "select * from Event where EventID =" . $this->EventID . "AND Lang =" . $lang;
$result = $this->selectOneRow($sql);
}
}
这是孩子:
class Invitation extends Event{
public function getLang($lang){
Event::getLang($lang);
$sql = "select * from invitation where EventID =" . $this->EventID . " and Lang = " . $lang;
}
}
我有一些希望EVENT :: getLang($ lang)可以工作,但在我回显查询后,我可以看到它没有一个EventID。
有没有正确的方法来做到这一点?
我尝试直接复制/粘贴子代码,但这也无法工作,因为我在父级的级别上得到了事件选择结果的变量。
有没有办法解决这个问题,还是我处于僵局?
我想你想要使用parent
关键字:
class Invitation extends Event{
public function getLang($lang){
parent::getLang($lang);
$sql = "SELECT * FROM invitation WHERE EventID =" . $this->EventID . " AND Lang = " . $lang;
}
}
你必须使用parent
class Invitation extends Event{
public function getLang($lang){
parent::getLang($lang);
....
}
}
Event::getLang($lang);
实际上是试图静态调用getLang
。 看到这些链接:
该方法不是静态的,因此不需要调用静态方法Event::getLang()
,而是需要调用parents方法
parent::getlang($lang);
更新:我的意思是,使用Event::getLang()
您通常会在类上调用静态方法,可以扩展也可以不扩展。 其中parent::method()
始终调用继承的方法并保留调用方法的范围(类或静态), Classname::method()
始终尝试在特定类上调用静态方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.