is_resource

関数の概要

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_resourcefalse を返します。

例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で変数がリソース型かどうかを簡単に判定できる便利な関数です。ファイル操作やデータベース接続など、リソースを扱う処理で有効性をチェックするのに役立ちます。適切に使うことでバグを防ぎ、安全にリソースを管理できますので、実務での活用をおすすめします。