【PHP8.x】clearstatcache関数の使い方

作成日: 更新日:

clearstatcache関数は、PHPがファイルに関する情報を内部的にキャッシュしている内容をクリアする関数です。PHPは、filesize()file_exists()is_readable()といったファイルシステム関連の関数を呼び出した際、ファイルのサイズや存在の有無などの状態情報を一定期間記憶しています。これは、同じファイルに対してこれらの関数を繰り返し呼び出す際に、実際にディスクにアクセスする回数を減らし、アプリケーションのパフォーマンスを向上させるための仕組みです。

しかし、PHPが起動している間に、別のプログラムやユーザーによってファイルが変更されたり、削除されたりすることがあります。このような外部からの変更が発生した場合、PHPが記憶しているファイルの情報は古くなり、現在のファイルの状態と一致しなくなる可能性があります。例えば、ファイルが外部から削除されたにもかかわらず、PHPの内部キャッシュがそのファイルは存在すると記憶していると、その後の処理で予期せぬ結果を引き起こすことがあります。

clearstatcache()関数を呼び出すと、PHPの内部に記憶されているファイルに関する状態情報キャッシュが強制的に破棄されます。これにより、次にfilesize()などのファイルシステム関連関数が呼び出された際には、キャッシュされた古い情報ではなく、ファイルシステムから直接、最新のファイルの状態が取得されるようになります。この関数は、ファイルシステムが頻繁に外部から変更されるような環境で、常に最新のファイル情報を確実に取得したい場合に利用されます。

基本的な使い方

構文(syntax)

clearstatcache();

引数(parameters)

?bool $clear_realpath_cache = null, ?string $filename = null

  • bool $clear_realpath_cache = null: realpath() キャッシュをクリアするかどうかを指定します。true を指定すると、realpath() のキャッシュがクリアされます。
  • string $filename = null: 特定のファイルパスの stat キャッシュのみをクリアする場合に、そのファイルパスを指定します。

戻り値(return)

void

clearstatcache関数は、ファイルの状態情報をキャッシュから削除します。この関数は、ファイルの状態情報(サイズ、更新日時など)をメモリ上に保持する仕組みをクリアするために使用されます。この関数は戻り値を持ちません。