PHP Conference China 2020

get_resource_type

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

get_resource_typeリソース型を返す

説明

get_resource_type ( resource $handle ) : string

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

パラメータ

handle

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

返り値

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

もし handle がリソースでない場合、 この関数は NULL を返し、エラーを発生させます。

変更履歴

バージョン 説明
5.3.0 handleresource でなかった場合、 この関数は NULL を返すようになりました。 これより前のバージョンでは、FALSE を返していました。

例1 get_resource_type() の例

<?php
// mysql link を出力
$c mysql_connect();
echo 
get_resource_type($c) . "\n";

// stream を出力
$fp fopen("foo""w");
echo 
get_resource_type($fp) . "\n";

// domxml document を出力
$doc new_xmldoc("1.0");
echo 
get_resource_type($doc->doc) . "\n";
?>

add a note add a note

User Contributed Notes 1 note

up
15
CertaiN
6 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