初期ハンドルへのメモリが解放されると、システムがポインタをクリーンアップして閉じる場合があります。次のスクリプトを使用します。
$fp = fopen("example.txt", 'w');
$fp = fopen("example.html", 'w');
while (true);
私はから次の出力を取得しますinotifywait -m -r .
:
MODIFY example.txt
OPEN example.txt
MODIFY example.html
OPEN example.html
CLOSE_WRITE,CLOSE example.txt
これは、明示的なfclose
onがない場合、スクリプト実行の最後に開いているハンドルを閉じるのと同じ方法で(つまり、参照カウントexample.txt
によって) 、ZendEngineによって暗黙的に閉じられることを意味します。
ただし、特にユースケースを考えると、ファイルハンドルを適切かつ明示的に閉じることをお勧めします。ここでは、ループ内で複数のファイルハンドルを開くことによるメモリへの影響について十分に懸念する必要があります。それに加えて、実行時間の長いスクリプトでファイルのロックを取得する可能性のある問題、セキュリティ上の考慮事項、ハンドルを適切にクリーンアップすることをお勧めします。
参照:PHPでファイルに書き込んだ後に必要なのはなぜですか?fclose