PHP 8.4.0 RC4 available for testing

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

get_resource_typeリソース型を返す

説明

get_resource_type(resource $resource): string

この関数は、指定したリソースの型を取得します。

パラメータ

resource

評価されるリソースハンドル。

戻り値

指定された resource がリソースであった場合、 この関数はその型を表す文字列を返します。この関数で型が判別できなかった 場合は、戻り値は文字列 Unknown となります。

もし resourceresource でない場合、 この関数は null を返し、エラーを発生させます。

例1 get_resource_type() の例

<?php
$fp
= fopen("foo", "w");
echo
get_resource_type($fp) . "\n";

// PHP 8.0.0 以降は curl_init 関数がリソースの代わりに CurlHandle オブジェクトを返すようになったので、以下のコードは動作しません。
$c = curl_init();
echo
get_resource_type($c) . "\n";
?>

上の例の PHP 7 での出力は、このようになります。

stream
curl

参考

add a note

User Contributed Notes 1 note

up
15
CertaiN
10 years ago
Try this to know behavior:

<?php
function resource_test($resource, $name) {
echo
'[' . $name. ']',
PHP_EOL,
'(bool)$resource => ',
$resource ? 'TRUE' : 'FALSE',
PHP_EOL,
'get_resource_type($resource) => ',
get_resource_type($resource) ?: 'FALSE',
PHP_EOL,
'is_resoruce($resource) => ',
is_resource($resource) ? 'TRUE' : 'FALSE',
PHP_EOL,
PHP_EOL
;
}

$resource = tmpfile();
resource_test($resource, 'Check Valid Resource');

fclose($resource);
resource_test($resource, 'Check Released Resource');

$resource = null;
resource_test($resource, 'Check NULL');
?>

It will be shown as...

[Check Valid Resource]
(bool)$resource => TRUE
get_resource_type($resource) => stream
is_resoruce($resource) => TRUE

[Check Released Resource]
(bool)$resource => TRUE
get_resource_type($resource) => Unknown
is_resoruce($resource) => FALSE

[Check NULL]
(bool)$resource => FALSE
get_resource_type($resource) => FALSE
Warning: get_resource_type() expects parameter 1 to be resource, null given in ... on line 10
is_resoruce($resource) => FALSE
To Top