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

作成日: 更新日:

finfo_close関数は、ファイルに関する情報を扱うためのリソースを閉じる関数です。PHPのfileinfo拡張機能の一部として提供されており、主にファイルのMIMEタイプやエンコーディングなどを特定する際に使用されます。

この関数は、finfo_open()関数によって開かれたファイル情報データベースへの接続を終了させるために利用します。finfo_open()を実行すると、システムはファイルの種別を識別するための特別な情報源へのアクセス権を確保します。ファイル情報の解析が完了し、そのリソースが不要になった際にfinfo_close()を呼び出すことで、占有していたシステム資源を解放し、メモリの効率的な利用を促進します。これは、プログラムが安定して動作し、無駄なリソース消費を防ぐ上で非常に重要です。

finfo_close()の引数には、finfo_open()が返したFInfoオブジェクト(または旧バージョンでのリソース)を指定します。関数が成功するとtrueを、失敗するとfalseを返します。

なお、PHP 8.0以降のバージョンでは、finfo_open()によって作成されたFInfoオブジェクトがスコープ外に出た際に自動的にリソースが解放されるようになりました。そのため、明示的にfinfo_close()を呼び出す必要性は以前に比べて少なくなっています。しかし、コードの明確性や古いバージョンとの互換性を保ちたい場合、または特定のリソースをすぐに解放したい場合には、この関数を使用することが有効です。

基本的な使い方

構文(syntax)

<?php
$finfoObject = finfo_open(FILEINFO_MIME_TYPE);

if ($finfoObject) {
    $closedSuccessfully = finfo_close($finfoObject);
}
?>

引数(parameters)

finfo $finfo

  • finfo $finfo: ファイル情報コンテキストリソース

戻り値(return)

bool

finfo_close関数は、ファイル情報取得のためのリソースを解放します。成功した場合はtrueを、失敗した場合はfalseを返します。

【PHP8.x】finfo_close関数の使い方 | いっしー@Webエンジニア