警告:方法声明应与parent :: method兼容

时间:2018-01-05 10:24:37

标签: php

我有以下课程:

class parent{

    public function getTotalPages($idName = false,$tableName = false,$whereClause = false,$itemsPerPage = false){

        $stmt = $this->dbc->prepare("SELECT COUNT({$idName}) FROM {$tableName} {$whereClause}");

        $stmt->execute();

        $stmt->store_result();

        $stmt->bind_result($totalItems);

        $stmt->fetch();

        $stmt->close();

        return ceil($totalItems/$itemsPerPage);

    }
}

以及以下子类:

class child extends parent{

    public function getTotalPages(){

        return parent::getTotalPages('p.product_id','products p',$this->whereClause,$this->itemsPerPage);

    }

}

注意:这只是类的摘录,我遗漏了不必要的代码。

代码有效,但我收到以下警告:

Warning: Declaration of child::getTotalPages() should be compatible with parent::getTotalPages($idName = '', $tableName = '', $whereClause = '', $itemsPerPage = '')

我的错误在哪里?

编辑2(解决方案):

当我将父级的方法名称更改为manageTotalPages(除了getTotalpages之外的任何内容)时,警告不会再次显示。

1 个答案:

答案 0 :(得分:0)

如果没有paretn getTotalPages中的参数,则不能使用父方法class child extends parent{ public function getPages(){ return $this->getTotalPages('p.product_id','products p',$this->whereClause,$this->itemsPerPage); } } 。要使用父方法getTotalPages,您还可以使用不同的子方法:

getTotalPages

子类总是包含方法asset(),并且不需要在子类中对它们进行显式处理。