我正在使用php中的一个类,它基本上是数据库行的接口。我想创建一个delete()
方法,它将删除数据库行,并且2.销毁自身的实例,以便通过对象操纵行的进一步尝试会抛出警告。
做一些谷歌搜索,似乎在php5中,对象无法取消自身。 http://bugs.php.net/bug.php?id=36971
事实上,他们讨论了我想要做的事情:(
那我该怎么办呢?我可以将布尔标志作为类属性,以确定该行是否仍然存在,并让每个操作检查该标志并在该行被删除时抛出错误。这维护了oo结构的代码,所以我会
$objDbRow->delete();
但是我必须在每种方法的开头加检查。
或者,我可以实现删除行的__destruct
方法。但这对我来说似乎是违反直觉的;如果我在代码中看到
unset($objDbRow);
我怀疑发生的事情是丢弃对象,而不是删除行。所以对我来说这似乎是不好的做法。
答案 0 :(得分:3)
我会保留delete()
方法,并创建一个名为active
的内部标记。删除该行后,该标志将设置为false
。
在尝试访问任何对象的数据属性之前,将检查该标志。如果它是假的,则返回false,发出警告......或者最适合您应用程序理念的任何内容。