2010-05-04 45 views
1

我正在研究一個基本上是數據庫行接口的php類。我想創建一個delete()方法,它將1.刪除數據庫行並銷燬它自己的實例,以便進一步試圖通過對象操縱該行將引發警告。在php5中自毀對象?

做一些谷歌搜索,看起來,在php5中,一個對象不可能自行設置。 http://bugs.php.net/bug.php?id=36971

事實上他們討論的非常情況,我想這樣做:(

所以,我應該如何進行?我可以讓布爾標誌作爲一個階級屬性,該行是否依然存在,讓每個操作檢查標誌,如果該行已被刪除,拋出一個錯誤,這保持了代碼的面向對象的結構,所以我會

$objDbRow->delete(); 

但後來我不得不把支票在每個方法的開始。

或者,我可以實現刪除行的__destruct方法。但是這對我來說似乎是反直覺的;如果我看到代碼

unset($objDbRow); 

所有我會懷疑發生的事情是,該對象被丟棄,而不是行被刪除。所以對我來說這似乎是不好的做法。

回答

3

我會保留delete()方法,並創建一個名爲active的內部標誌。當該行被刪除時,該標誌被設置爲false

在嘗試訪問任何對象的數據屬性之前,該標誌將被檢查。如果它是假的,則返回false,發出警告......或任何最適合您應用程序的哲學的東西。