0

可能重复:
如何从继承的方法中调用 PHP 父方法?

我正在尝试通过以下方式覆盖 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()。

我知道您不能拥有共享相同名称的函数,那么解决我的问题的最佳方法是什么?

4

2 回答 2

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'
      );
   }
}
于 2012-10-17T00:41:48.393 回答
2

使用父关键字 Insted您应该更改:

$this->login(

parent::login(

PHP文档

不要在代码中使用基类的字面名称,而应该使用特殊名称 parent,它指的是类的扩展声明中给出的基类的名称。

于 2012-10-17T00:42:03.063 回答