之前我在iPhone开发中使用Objective-C。现在似乎需要在后端网站上做一些工作,我选择了PHP。在Objective-C中,我需要在使用对象后释放它们。在PHP中我也需要这样做吗?谢谢。
之前我在iPhone开发中使用Objective-C。现在似乎需要在后端网站上做一些工作,我选择了PHP。在Objective-C中,我需要在使用对象后释放它们。在PHP中我也需要这样做吗?谢谢。
PHP使用垃圾回收而非手动内存管理。 对象在变得不可达之后的某个时刻被释放(并非像一些简化介绍所声称的那样立即释放)。这包括引用循环,因为一些版本以来(a引用b,b引用a)- 以前,它仅使用引用计数,并因此无法处理这样的循环。
当资源(文件、数据库连接等)被收集时可能会关闭,但由于收集的时间是不确定的,以及是否关闭它们取决于资源本身,因此在完成操作后仅留下它们可能是一个非常糟糕的主意。
unset
会强制销毁。即使它触发了 GC 循环(再次强调,这非常不可能),我所知道的所有 GC 语言都不允许删除一个仍被引用的对象(除了 D 语言,其中 GC 明确是可选的),因为这将破坏 GC 有用性的 50%(没有悬空指针)。 - user395760