带有接口的PHP类和关于抽象方法的错误

带有接口的PHP类和关于抽象方法的错误,php,interface,Php,Interface,我正在为番茄CMS开发一个新的小部件,它们使用一个界面: interface Ad_Models_Interface_BannerPageAssoc { ... /** * Get banner-page by Zone Id * * @param int $zoneId Id of zone */ public function getByZoneId($zoneId); } class Ad_Models_Dao_Mysq

我正在为番茄CMS开发一个新的小部件,它们使用一个界面:

interface Ad_Models_Interface_BannerPageAssoc
{
    ...

    /**
     * Get banner-page by Zone Id
     * 
     * @param int $zoneId Id of zone
     */
    public function getByZoneId($zoneId);
}
class Ad_Models_Dao_Mysql_BannerPageAssoc extends Tomato_Model_Dao
implements Ad_Models_Interface_BannerPageAssoc
{

    public function getByZoneId($zoneId)
    {
      $sql  = sprintf("SELECT * FROM " . $this->_prefix . "ad_page_assoc");
      $rs   = mysql_query($sql);
      $rows = array();
      while ($row = mysql_fetch_object($rs)) {
        $rows[] = $row;
      }
      mysql_free_result($rs);
      return new Tomato_Model_RecordSet($rows, $this);
    }
}
以及实现此接口的另一个类:

interface Ad_Models_Interface_BannerPageAssoc
{
    ...

    /**
     * Get banner-page by Zone Id
     * 
     * @param int $zoneId Id of zone
     */
    public function getByZoneId($zoneId);
}
class Ad_Models_Dao_Mysql_BannerPageAssoc extends Tomato_Model_Dao
implements Ad_Models_Interface_BannerPageAssoc
{

    public function getByZoneId($zoneId)
    {
      $sql  = sprintf("SELECT * FROM " . $this->_prefix . "ad_page_assoc");
      $rs   = mysql_query($sql);
      $rows = array();
      while ($row = mysql_fetch_object($rs)) {
        $rows[] = $row;
      }
      mysql_free_result($rs);
      return new Tomato_Model_RecordSet($rows, $this);
    }
}
当我创建该类的对象并调用该函数时,会出现以下错误:

致命错误:类Ad_Models_Dao_Pdo_Mysql_BannerPageAssoc包含1个抽象方法,因此必须声明为抽象或在第59行的C:\xampp\htdocs\roepingen\application\modules\Ad\Models\Dao\Pdo\Mysql\BannerPageAssoc.php中实现其余方法(Ad_Models_Interface_BannerPageAssoc::getByZoneId)


有人知道我如何解决这个问题吗?

在使用关键字interface/abstract和extends/implements之间可能存在问题。你没有提到你实际得到错误的类,它是Ad_Models_Dao_Pdo_Mysql_BannerPageAssoc。如果该类实现了Ad_Models_Interface_BannerPageAssoc,则该类还必须实现所需的方法。与PHP中的处理方式不同。

在使用关键字interface/abstract和extends/implements之间可能存在问题。你没有提到你实际得到错误的类,它是Ad_Models_Dao_Pdo_Mysql_BannerPageAssoc。如果该类实现了Ad_Models_Interface_BannerPageAssoc,则该类还必须实现所需的方法。与PHP中的处理方式不同。

Ad\u Models\u Dao\u Mysql\u BannerPageAssoc
与错误中的类不同:
Ad_Models_Dao_Pdo_Mysql_BannerPageAssoc
Ad_Models_Dao_Mysql_BannerPageAssoc
与错误中的类不同:
Ad_Models_Dao_Pdo_Mysql_BannerPageAssoc

这确实是我的错。。。谢谢注意:-)这确实是我的错。。。感谢您的关注:-)