ホーム > PHPの文法 > 2 データ型 > PHP の リソース型(resource) について
PHPリファレンス

UPDATE:2020年07月01日

PHP の リソース型(resource) について

PHP の リソース型(resource) について | wepicks!
PHP4.3 PHP5 PHP7

1 Minute Note

  • リソース型 は PHPの外部世界 とやり取りを行うデータが格納されている型
  • リソース はデータベースや画像ファイルなどの 外部情報
  • リソース型 の種類は 特殊型
  • リソース型 のチェックは is_resource() 関数 で行う


リソース型とは

POINT

  • リソース型 は PHPの外部世界 とやり取りを行うデータが格納されている型
  • リソース はデータベースや画像ファイルなどの 外部情報
テキストファイルやデータベースなど外部世界を扱う

リソースはPHPと外部世界とのやり取りを行うための特別な変数です。例えばPHPからMySQLやSQLite、テキストファイルなどのデータベースへ接続したり、画像ファイルを開いたりする際、PHPではそれらを実行するための専用の関数が定義されています。そのような関数を実行して取得した接続情報を変数へ格納することが可能で、これらの変数は外部リソースを保持し、型はリソース型となります。

つまり、リソースは、特別な関数により作成された外部情報を持つ変数のことです。そのような変数の型がリソース型となるのです。

リソースで外部情報を容易に操作する

PHPの外部世界とのやり取りを行うためには、様々な処理が必要になりますが、リソースにはそのような処理を完結に扱うためのデータが格納されます。したがって、通常行う複雑な手続きが、リソースを呼び出すだけで一括して処理することが可能となり、外部リソースのやり取りが非常に楽になります。

リソースの実態は整数値

リソースの実体は整数値です。リソースは外部世界とのやり取りを実現するための数値データ(ハンドル)が格納されているハンドラです。

このような特殊な型のため、他の型からリソース型への変換はできません

リソースへの参照が無くなった時点でそのリソースは自動的に削除されます。これにより、このリソースが作成した全てのリソースは開放され、同時にメモリも開放されます。

PHPには多くのリソースを 生成、使用、破棄 するための関数が定義されています。

MySQLデータベースとのやり取り

例えばデータベースのMySQLとやり取りを行うために、データベースへ接続するための特別な関数を動かし、結果を変数に格納しておきます。この変数はリソース型の変数となります。データベースを利用しているアプリケーションであれば、頻繁にデータベースを呼び出すことになりますが、その際、リソース型の変数を呼び出すだけでいつでもデータベースとやり取りが行えるようになります。この特別な変数がリソース型の変数です。

データベースに接続

リソースを呼び出してクエリを実行

リソースを呼び出してクエリを実行

接続解除

データ型の種類

POINT
  • PHPの8つのデータ型:
  • 字列型(string) 整数型(integer) 浮動小数点数型(float)(double) 論理型(boolean) 配列型(array) オブジェクト型(object) リソース型(resource) NULL(null)
    (スカラー型) (スカラー型) (スカラー型) (スカラー型) (複合型) (複合型) (特殊型) (特殊型)
  • PHPの3のデータ種類:
  • スカラー型
    (文字列型) (整数型) (浮動小数点数型) (論理型)
    複合型
    (配列型) (オブジェクト型)
    特殊型
    (リソース型) (NULL)
PHPには8種類のデータ型があります。文字列型、整数型、浮動小数点数型、論理型、配列型、オブジェクト型、リソース型、NULLです。そして、それらのデータ型は、スカラー型複合型特殊型に分けられます。 スカラー型は単一の値で作られている型です。文字列、整数、浮動小数点数、論理値がそれに当たります。 複合型(コレクション型)は複数の値で作られている型です。配列とオブジェクトがそれに当たります。 特殊型リソースとNULLです。

データ型の表

型名種類
文字列型stringスカラー型'Hello World!!'
"我思う、ゆえに我あり"
整数型integerスカラー型1、2020、-588、+98
8進数
16進数
浮動小数点数型float(double)スカラー型1.4142、-0.18
論理型booleanスカラー型TRUE | FALSE (true false)
(大文字・小文字を区別しない)
配列型array複合型array('name','address')
オブジェクト型object複合型$oObj = new ClassName();
リソース型resource特殊型resource
ヌル型null特殊型NULL | null | Null
(大文字・小文字を区別しない)

リソース型であるか調べる

POINT

    リソース型 のチェックは is_resource() 関数 で行う

ある値がリソース型かどうか調べるにはis_resource()関数を使用します。

結果は

リソース型です。

となります。

is_resource() 書式
bool TRUE か FALSE = is_resource(mixed $var);

説明変数のデータ型がリソース型かどうかチェックする
引数mixed $varデータ型を調べる変数
返り値bool変数がリソース型の場合:TRUE、変数がリソース型ではない場合:FALSE

サンプル


タグ(=記事関連ワード)

日付

公開日:2019年9月26日
最終更新日:2020年07月01日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/resourcetype/trackback/

page top