2016-03-03 27 views
1

我要摧毀PDO方面,我可以做到這一點創建一個私有變量具有這種結構:$this->_pdo = new PDO(credentials here),然後在同一類:如何在PDO中調用父毀滅?

function __destruct() 
{ 
    $this->_pdo = NULL; 
} 

但對於像lastInsertedId一些操作,我需要調用父構造。所以我需要使用這種結構:

public function __construct($dbhost, $dbname, $dbuser = 'root', $dbpass = '', $dbtype = 'mysql') { 
    parent::__construct($dbtype . ':host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass); 
} 

如何使用父結構銷燬連接?

+0

這個類是否擴展了PDO對象? – Machavity

+0

是的,這是一個包裝 –

+0

就像旁邊一樣,不斷地通過PDO連接和斷開可能是浪費。如果我是你,我會在課堂外實例化它,並在需要時注入它。 – Machavity

回答

0

不幸的是沒有一個好方法可以做到這一點。您在這裏有兩種場景

  1. 您正在實例化PDO並將其保存爲類成員。此時,您有一個指向該實例的變量,因此刪除該引用將導致其有資格進行垃圾回收
  2. 您正在從一個子類實例化PDO。在這裏你不能銷燬實例,因爲子實例是子實體。你不得不回到變量保存實例和unset(),或類似

的東西沒有了類本身,我不知道我們能比這更多的幫助。

+0

嗯,我想在我的包裝一個'死()'可以解決這種情況 –