大多数关于PHP的资源都不涉及内存管理,因为语言本身在这方面做得很好。但是,在PHP中,您经常需要处理外部资源,这些资源不是内存——例如数据库句柄、会话、数据库事务等。这些外部资源可以使用某种形式的RAII对象进行最清晰的管理。
我最初认为PHP使用类似于JVM或CLR的垃圾回收方案,其中不存在析构函数的概念。(请记住:每个人都以错误的方式思考垃圾回收——终结器不是析构函数!)有特殊的
然而,Google似乎表明PHP支持RAII模式,尽管我在PHP文档中找不到验证。语言是否支持并将清理逻辑放在
我最初认为PHP使用类似于JVM或CLR的垃圾回收方案,其中不存在析构函数的概念。(请记住:每个人都以错误的方式思考垃圾回收——终结器不是析构函数!)有特殊的
__destruct
方法,但我认为它是类似于Java或C#终结器的“终结器”。因此,在JVM或CLR上无法使用RAII(C#的using
块可以让您完成大约95%的工作,但这有点不同...)。然而,Google似乎表明PHP支持RAII模式,尽管我在PHP文档中找不到验证。语言是否支持并将清理逻辑放在
__destruct
中足以完成RAII任务?