関数の概要
PHPの is_resource 関数は、指定した変数が「リソース型」であるかどうかを判定するための関数です。リソース型とは、ファイルハンドルやデータベース接続、画像データなど外部リソースを表す特殊な型を指します。変数が有効なリソースであれば true を返し、そうでなければ false を返します。
パラメータの説明
mixed $var: 確認したい変数を指定します。どんな型の変数でも渡すことが可能です。
戻り値
is_resource は、引数に渡した変数がリソース型なら true、それ以外は false を返します。リソースが有効でなかったり、そもそもリソースでない場合は false となります。
使用例
例1: ファイルポインタの確認
<?php
$file = fopen('sample.txt', 'r');
if (is_resource($file)) {
echo "これは有効なリソースです。";
} else {
echo "リソースではありません。";
}
fclose($file);
?>
この例では、fopen で開いたファイルハンドルがリソースかどうかを判定しています。通常ファイルハンドルはリソースなので、trueが返ります。
例2: 無効なリソースの確認
<?php
$file = fopen('sample.txt', 'r');
fclose($file);
var_dump(is_resource($file)); // false を返す
?>
閉じたファイルハンドルは無効なリソースになるため、is_resource は false を返します。
例3: その他の型の変数を判定
<?php
$var1 = 123;
$var2 = "hello";
$var3 = tmpfile(); // 一時ファイルのリソース
var_dump(is_resource($var1)); // false
var_dump(is_resource($var2)); // false
var_dump(is_resource($var3)); // true
?>
整数や文字列はリソース型でないため false。一時ファイルを作成した tmpfile() はリソース型なので true を返します。
関連する関数
get_resource_type: リソースの種類を文字列で取得するis_array: 変数が配列かどうかを判定するis_object: 変数がオブジェクトかどうかを判定するis_null: 変数がNULLかどうかを判定する
まとめ
is_resource は、PHPで変数がリソース型かどうかを簡単に判定できる便利な関数です。ファイル操作やデータベース接続など、リソースを扱う処理で有効性をチェックするのに役立ちます。適切に使うことでバグを防ぎ、安全にリソースを管理できますので、実務での活用をおすすめします。
