是退出后清除的函数范围中声明的变量占用的内存


is memory taken up by variables declared in function scope cleared after exit?

函数作用域中声明的变量占用的内存在离开函数作用域后是否被清除?

是的,当它们失去作用域时,它们被标记为垃圾收集。垃圾收集会在必要时启动,但可能不会立即启动。但是,create_function创建的函数不受此约束,并且可能导致内存泄漏。自5.3以来,对于较长的脚本甚至有一些真正的垃圾收集。点击此处阅读更多信息。

是的,当然,运行函数时会清除内存

不立即。大多数GC语言都是在突发的情况下进行"收集"的——要么是由于堆空间限制而被认为是必要的,要么是在执行过程中没有其他事情可做的情况下,根据策略而定。