方法并调用Overwrite



我知道这可以通过使用另一个方法名来避免,但我很好奇下面是否可能。

我有这样一个类:(当然它有更多的方法,但它们与问题无关)

class db extends mysqli {
    public function query($sql){
        $sql = $this->parent->query($sql);
        if($this->error){
            echo "<script>popup('SQL error bro!');</script>";
        }else{
            return $sql;
        }
    }
}

我想做的是从我创建的query()方法中调用原始的mysqli query()方法。有可能吗?或者我要开始重命名了?

我也想指出,这是纯粹的开发使用,我知道用户不应该看到sql错误。我想这样做的原因是,今天我需要将一个表的列名从id更改为vid,然后我的整个系统停止工作,我花了30分钟的研究,我只是想防止将来发生这种情况。

变化

$this->parent->query($sql);

$sql = parent::query($sql);

可能,但可能不是最佳实践:

parent::query($sql)

可以通过调用

来调用父类的方法。
parent::query();

参见:http://www.php.net/manual/en/keyword.parent.php

最新更新