- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试学习 PHP 的面向对象方面,并且想知道:
如果我使用 _constructor 打开与数据库的连接,使用该类中的函数(例如插入),定义的 __destructor 会在执行“插入”方法后关闭连接吗?
class data(){
function __constructor {
// connect to db
}
function insert($data){
// mysql_query(...)
}
function __destructor {
// close connection to db
}
}
$obj = new db();
$obj->insert('mumbo jumbo');
或者与数据库的连接是否仍然打开?因为我读到析构函数只有在对象被销毁时才会运行。但是如何销毁对象呢?
最佳答案
在 PHP 中,对象在超出作用域时被销毁。这通常是在脚本停止执行或在其中创建的函数结束时,但您可以在代码的早期销毁对象:
unset($my_variable);
因此,为了回答您的问题,您应该允许析构函数在大多数情况下为您处理关闭数据库,尤其是对于小脚本。
关于PHP __Constructor 和 __Destructor 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1301654/
我一直在尝试学习 PHP 的面向对象方面,并且想知道: 如果我使用 _constructor 打开与数据库的连接,使用该类中的函数(例如插入),定义的 __destructor 会在执行“插入”方法后
你能从构造函数返回 false 吗? host = $host; $this->username = $username; $this->pas
我写了一个叫做 Task 的小抽象类。我喜欢让每个任务逻辑的类来扩展它。 在我的抽象类“任务”中,我喜欢调用在每个类中定义的已用定义方法“执行”。 我尝试使用魔术方法 __call 但它不起作用。 如
大家好,我是 PHP 面向对象编程的新手。所以有时我在学习 PHP 中的 OOP 时需要帮助。这是一个名为 parentClass 的类,我有一些方法和属性,例如: class parentC
我正在学习doctrine2,并且在如何自动调用构造函数时遇到了问题。 例如,在我的实体中,我有 /** * @Entity */ class User{ .... public fu
我是一名优秀的程序员,十分优秀!