PHP面向对象之方法重写

    xiaoxiao2025-10-16  6

    风来了.fox

    因用到分表所以需要方法重写

    报错:

    Declaration of ..... should be compatible with .....

    请用如下方式解决

    class Model { /**设置分表名 * @param int $tableNum UID或表序号 * @param int $num 位数 * @return $this */ public function tableSplit($tableNum=0,$num=2){ $this->table($this->getTableNameSplit($tableNum,$num)); return $this; } } class StockFlowModel extends Model { /**设置分表名 * @param int $tableNum UID或表序号 * @param int $num * @return $this */ public function tableSplit($tableNum=0,$num=4) { if(empty($tableNum)){ $tableNum=date_time_format(DATE_TIME, 'ym'); } parent::tableSplit($tableNum, $num); return $this; } } 注意:

    方法覆盖时,与父类方法相同的约定,参数名称要一直,属性覆盖也要一致。

    调用父类方法时,用parent::方法调用

    相关资源:PHP面向对象程序设计(OOP)之方法重写(override)操作示例
    最新回复(0)