php5中的自毁对象?

时间:2010-05-04 19:31:38

标签: php oop

我正在使用php中的一个类,它基本上是数据库行的接口。我想创建一个delete()方法,它将删除数据库行,并且2.销毁自身的实例,以便通过对象操纵行的进一步尝试会抛出警告。

做一些谷歌搜索,似乎在php5中,对象无法取消自身。 http://bugs.php.net/bug.php?id=36971

事实上,他们讨论了我想要做的事情:(

那我该怎么办呢?我可以将布尔标志作为类属性,以确定该行是否仍然存在,并让每个操作检查该标志并在该行被删除时抛出错误。这维护了oo结构的代码,所以我会

$objDbRow->delete();

但是我必须在每种方法的开头加检查。

或者,我可以实现删除行的__destruct方法。但这对我来说似乎是违反直觉的;如果我在代码中看到

unset($objDbRow);

我怀疑发生的事情是丢弃对象,而不是删除行。所以对我来说这似乎是不好的做法。

1 个答案:

答案 0 :(得分:3)

我会保留delete()方法,并创建一个名为active的内部标记。删除该行后,该标志将设置为false

在尝试访问任何对象的数据属性之前,将检查该标志。如果它是假的,则返回false,发出警告......或者最适合您应用程序理念的任何内容。

相关问题