异常比goto
陈述更糟糕,因为它们会分别对每个较高的轮胎进行检查,看看是否有什么东西能最终赶上它们;并且它们将使函数/方法未完成而不释放已经分配的资源。
这是我在许多文章中看到的主要原因,这些文章建议不要使用 Exceptions ,主要是针对C ++和Java开发人员。
我想知道PHP是否也有同样的原因?关于PHP的要点是脚本通常会在初始化的几秒钟内完成/终止。而且我认为 - 嗯,我希望; PHP核心将释放已分配给该特定脚本的所有资源。
话虽这么说, Exceptions留下资源占用的原因在这里不是真正的问题,因为无论如何,所有这些资源在脚本完成时很快就会免费。
这是正确的还是我错过了什么?如果它是正确的,那么这是否意味着我可以在PHP中使用 Exceptions 而不用担心 Zombie Resources ,或者在脚本终止后它们会在那里停留一段时间? PHP的GC是否足够成熟以照顾那些浪费的资源?
答案 0 :(得分:1)
当相关变量超出范围时,PHP将释放已分配的内存,关闭资源等。这是PHP重新分配的主要机制:范围。由于在抛出异常时通常会非常快速地退出函数的范围,因此将释放其中的所有内容,就像您定期从函数返回一样。如你所说,一旦脚本结束,也会发生同样的情况。