可能重复:
How do I call PHP parent methods from within an inherited method?
我试图以下列方式覆盖php中的函数
主要课程
<?php
class Curl{
/* constructor */
public function Curl(){}
/* login */
public function login($url, $post_fields){
...
}
}
?>
子类
<?php
require_once("/var/www/api/curl/curl.php");
class Curl_B extends Curl{
/* constructor */
public function Curl_B(){}
/* login */
public function login(){
$this->login(
'https://xxx.co.uk/login.php',
'email=xxx&pass=xxx'
);
}
}
$curl = new Curl_B();
$curl->login();
?>
问题是,如果子类具有相同名称的函数,我似乎无法正确调用父函数login()。
据我所知,你不能拥有同名的功能,那么对我的问题最好的解决方案是什么?
答案 0 :(得分:4)
使用相同的名称调用父类的函数:
class Curl_B extends Curl{
/* constructor */
public function Curl_B(){}
/* login */
public function login(){
parent::login(
'https://xxx.co.uk/login.php',
'email=xxx&pass=xxx'
);
}
}
答案 1 :(得分:2)
Use Parent keyword Insted你应该改变:
$this->login(
到
parent::login(
不应在代码中使用基类的文字名称,而应使用特殊名称parent,它指的是类的extends声明中给出的基类名称。