Вот код:
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
# fclose($myfile);
?>
Что будет, если я не удалю комментарий в третьей строке?
PHP автоматически закрывает файлы в конце документа или раньше exit()
ING.
PHP также выгрузит память после того, как будет проанализирована последняя ссылка на файл.
Сборщик мусора освободит ресурс, когда больше не будет обнаружена ссылка.
Цитируя из Руководство по PHP :
Благодаря системе подсчета ссылок, представленной в PHP 4 Zend
Движок, ресурс, на который больше нет ссылок на него, обнаружен
автоматически, и это освобождено сборщиком мусора. За это
причина, это редко необходимо, чтобы освободить память вручную.Примечание. Постоянные ссылки на базы данных являются исключением из этого правила. Oни
не уничтожаются сборщиком мусора. Смотрите постоянный
раздел соединений для получения дополнительной информации.
Рабочий процесс сборки мусора в PHP можно кратко описать так:
root buffer
,root buffer
становится полным.Чтобы узнать больше о том, как PHP GC, обратитесь к документация.
После завершения процесса операционная система освободит все свои ресурсы — выделенную память и файловые дескрипторы. Так что ничего особенного не произойдет, если, конечно, код не будет продолжаться — количество файловых дескрипторов на процесс ограничено, и, как правило, рекомендуется выпускать их, как только вы закончите с ними.