Php 简明教程
PHP – Special Types
PHP 的两种数据类型 resource 和 NULL - 被归类为 special types 。资源类型的对象是指外部资源,例如数据库连接、文件流等。另一方面,NULL 数据类型是一个未分配任何数据的变量。在本章中,我们将详细了解这些类型。
Resource Type
PHP 程序经常需要与外部环境交互,例如数据库或磁盘文件等。这些在 PHP 中被视为资源。资源是一种特殊的数据类型,它指向任何此类外部资源。PHP 使用相关函数来创建这些资源。例如,fopen() 函数会打开一个磁盘文件,并将其引用存储在资源变量中。
PHP 的 Zend 引擎使用引用计数系统。因此,垃圾回收器会自动销毁引用计数为零的资源,并且无需手动释放资源数据类型所使用的内存。
不同的 PHP 内置函数返回各自的资源变量。随后,PHP 使用它们与相应的外部环境进行交互。例如,fopen() 函数返回一个文件资源,该资源用作文件句柄,并且通过此资源变量来促进对文件的读/写操作。
下表总结了返回资源变量的不同函数 −
Resource Type |
Built-in functions |
Definition |
Produced |
Sold |
bzip2 |
bzopen() |
bzclose() |
Bzip2 file |
curl |
curl_init() |
curl_close() |
Curl session |
ftp |
ftp_connect(), |
ftp_close() |
FTP stream |
mssql link |
mssql_connect() |
mssql_close() |
链接到 Microsoft SQL Server 数据库 |
mysql link |
mysql_connect() |
mysql_close() |
Link to MySQL database |
mysql result |
mysql_db_query(), |
mysql_free_result() |
MySQL result |
oci8 connection |
oci_connect() |
oci_close() |
Connection to Oracle Database |
ODBC link |
odbc_connect() |
odbc_close() |
Link to ODBC database |
pdf document |
pdf_new() |
pdf_close() |
PDF document |
stream |
opendir() |
closedir() |
Dir handle |
stream |
fopen(), tmpfile() |
fclose() |
File handle |
socket |
socket_create() |
Socket_close() |
Socket handle |
xml |
xml_parser_create() |
xml_parser_free() |
XML parser |
zlib |
gzopen() |
gzclose() |
gz-compressed file |
zlib.deflate |
deflate_init() |
None() |
incremental deflate context |
zlib.inflate |
inflate_init() |
None() |
incremental inflate context |
PHP 具有 get_resource_type() 函数,该函数返回变量的资源类型。
get_resource_type ( resource $handle ) : string
其中 $handle 是要获取其类型的资源变量。此函数返回一个对应于资源类型的字符串。
还有一个 get_resource_id() 函数,它为给定的资源提供一个整数标识符。
get_resource_id(resource $resource): int