我正在使用类似下面的结构 -
class foo{
.
.
.
function bar($colID){
try{
$dbo = new PDO(get_db_DSN(),
get_db_USR(),
get_db_PWD());
$pstmt = $dbo->prepare("SELECT * FROM table_name WHERE col=:colID");
$pstmt->bindValue(':colID', $colID);
$pstmt->execute();
.
.
.
}catch(PDOException e){
...
}
}
我需要知道PDO是否会持续到foo
的对象存在,或者它是否会在函数范围结束后被销毁。
答案 0 :(得分:2)
条形$dbo
后将被“销毁”。
当“refcount”达到零时,变量容器被破坏。当链接到变量容器的任何符号离开范围时(例如,当函数结束时)或者在符号上调用unset()时,“refcount”减1。
答案 1 :(得分:0)
它将被垃圾收集...如果你希望它在函数返回后可用,你应该使用foo
属性来存储它。
class foo{
.
.
.
var $dbo;
function bar($colID){
try{
$this->dbo = new PDO(get_db_DSN(), get_db_USR() get_db_PWD());
.
.
.
}catch(PDOException e){
...
}
}