リソース型:resource
リソース型とは
リソース型(resource)は少し特殊です。ごく単純に説明すると、外部リソースへのリファレンスを保持する変数の事となりますが、意味が分からない人も多いと思うのでもう少し解説を加えておきます。
分かりやすく、カウンターや掲示板を例に挙げさせて頂きます。
カウンターや掲示板を作る時には、カウント値または名前やメッセージなどの値を記録しておくものが別に必要になります。ここではごく単純に「もの」といいましたが、値を記録しておくものはファイルであったりデータベースであったりします。つまり、ファイル操作やデータベース操作をして値を取り出すわけです。
ファイルを操作といっても難しい事ではなく、「ファイルを開く」・「ファイルを閉じる」など普段クリックなどで行っている作業をPHPで行うっていうだけです。データベースについても同様で、「データベースと接続する」・「接続を閉じる」などの操作をPHPで行います。実際には「開く」と「閉じる」の間にいろいろな処理(値を読み込んだりなど)が入るですが、ここでは詳しく述べません。
そういった外部ファイルやデータベースへの接続IDのようなものを保持しておくのがリソース型です。
正確には接続IDというより、外部のリソース(ファイルやデータベース)を操作するためのハンドラです。外部のリソースを操作するためにまずそのリソース専用のハンドルを作成し、それ以降はそのハンドルを使用してリソースを操作する事になります。
このような特殊な型のため、他の型からリソース型への変換はできません。
ファイルやデータベースが一番有名な外部リソースですが、PHPには他のリソースも存在します。次に有名なのは画像操作ができるGDでしょうか。
- $fp = fopen("test.txt", "r"); // 外部ファイルオープン
- var_dump($fp); // $fpはリソース型
- fclose($fp); // ファイルクローズ
出力結果
※リソース型はPHP4で導入されました。





