我试图在PHP中扩展mysqli类。我希望能够将所有错误作为例外处理,因此如果可能/必要,我可以选择从中恢复。
我遇到的问题是mysqli构造函数坚持在未建立连接时触发PHP警告(例如,因为密码不正确),此外还有指示尝试失败的变量。
public function __construct()
{
mysqli_report(MYSQLI_REPORT_OFF);
parent::__construct(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_NAME);
if ($this->connect_errno > 0)
{
throw new ConnectionError($this);
}
}
在我调用父构造函数的地方触发警告。现在我的理解是这个函数的第一行应该禁用来自mysqli对象的报告,但要么它不能在构造函数上工作,要么我没有正确使用它。
我也知道我可以在功能调用前加上错误抑制' @'运算符,但使用该运算符被认为是不好的形式。
我也知道我可以定义一个可用于抑制警告的整体错误处理函数,但我希望能够非常具体地抑制仅来自那一行代码的警告。
因此,我想知道是否有人知道如何停止以一种被认为是良好做法的方式制作警告,或者是使用' @'的唯一方法。操作