在类__destruct函数上执行mysqli查询是否可以?
我听说它不会总是完成查询,否则它将无法正常工作。
例如:
class stackoverflow{
function a() {
}
function b() {
}
function __destruct() {
//mysqli query here
}
}
答案 0 :(得分:1)
通常,您最好创建自己的方法来执行需要在脚本末尾完成的任何工作并手动调用它。
在我看来,这个的主要原因是错误处理。
尝试从析构函数中抛出异常(在脚本终止时调用)会导致致命错误。
这意味着如果出现错误 - 例如 - 在您的mysql查询中,致命错误将关闭您的脚本。
__destruct方法有时可能很有用,但最好在需要一些简单硬编码的情况下使用,这些硬编码经过测试且不容易出错。
此外,某些服务器可能会在关闭阶段更改各种参数。比如工作目录。
答案 1 :(得分:0)
没有理由不按预期工作。但是,如果您首先解释了为什么要这样做,那将会有所帮助, there may be a better solution than what you have in mind