尝试此操作以了解行为
<?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');
?>
将显示为...
[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
警告:get_resource_type() 期待参数 1 是 resource,给定的是 null,位于 ... 的第 10 行
is_resoruce($resource) => FALSE