PHP リソース型 【初級編 第15回】
リソース型について
前回は NULL型について記載しました。
今回はリソース型について記載したいと思います。
リソース型の概要
リソース型とは
リソース型とは、データベースやファイルへのアクセスを保持しておくものです。
変数にデータベースやファイルなどのリソースを代入すると、
以後のそれらのへのアクセスには、代入した変数名を使用することでアクセスさせることができます。
リソース型の使い方
変数へのリソースの代入
リソース型も他の変数と同じように、=(イコール)を使用して、リソースを代入します。
下記では変数にリソースを代入してリソース型にしています。
<?php
$fname = fopen("out.txt", "r");
var_dump($fname);
fclose($fname);
?>
それから実際に、上記のソースコードと同じディレクトリに、 out.txt というファイルを作成します。
ブラウザから確認してみると、 resource(3) of type (stream) などの文字が表示されます。
(数字は異なるかもしれませんが)

変数はリソース型になっていることが確認できます。
以後は、$fnameを使用して、このソースコード内でファイルを
読み込んだり、書き込みをおこなったりすることができます。
リソース型を使用したファイルの読み込み
たとえば下記では、in.txtファイルを読み込んで、その内容をブラウザ上に表示しています。
<?php
$fname = fopen("in.txt", "r");
$mes = fread($fname, filesize("in.txt"));
fclose($fname);
print $mes;
?>
ブラウザからアクセスすると、以下のようにファイルに書き込んだメッセージが表示されました。

リソース型を使用したファイルへの書き込み
たとえば下記では、out.txtは第3者がブラウザからアクセスするたびに write message という文字列が書きこまれます。(上書き)
この際、out.txtファイルのアクセス権は、第3者からも書き込み可能にしておく必要があります。
<?php
$mes = 'write message';
$fname = fopen('out.txt', 'wb');
fwrite($fname, $mes);
fclose($fname);
?>
このように変数をリソース型にすることで、リソースへのアクセスを変数名で管理することができます。

今回はここまでで、次回はいろいろな型の確認方法について記載したいと思います。