CakeFest 2024: The Official CakePHP Conference

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

如果 resource 不是 resource,则此函数将返回 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