这里有一些代码:
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
# fclose($myfile);
?>
如果我不删除第三行中的评论会怎样?
答案 0 :(得分:3)
PHP会在文档末尾或exit()
之前自动关闭文件。
一旦解析了对文件的最后一次引用,PHP也会转储内存。
答案 1 :(得分:2)
当不再检测到引用时,垃圾收集器将释放资源。
引用PHP manual:
感谢PHP 4的Zend引入的引用计数系统 引擎,检测到没有更多引用的资源 自动,并由垃圾收集器释放。为了这 原因是,很少需要手动释放内存。
注意:持久数据库链接是此规则的一个例外。他们 没有被垃圾收集器破坏。看到持久性 连接部分了解更多信息。
PHP的垃圾收集工作流程可以简单描述如下:
root buffer
。root buffer
已满,就会运行GC。要了解有关PHP GC的更多信息,请咨询documentation。
答案 2 :(得分:1)
一旦完成该过程,操作系统将释放其所有资源 - 分配的内存和文件描述符。所以没有什么事情会发生,除非代码继续进行 - 每个进程的文件描述符数量是有限的,一旦你完成它们就会发布它们通常很好的风格。