0

我正在使用如下结构 -

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存在,或者它是否会在函数作用域结束后立即被销毁。

4

2 回答 2

2

之后酒吧$dbo将被“销毁”。

当“refcount”达到零时,变量容器被销毁。当链接到变量容器的任何符号离开作用域时(例如,当函数结束时)或在符号上调用 unset() 时,“refcount”会减一。

引用计数基础

于 2013-05-22T00:16:00.297 回答
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){
      ...
      }
}
于 2013-05-22T00:16:16.813 回答