php什么叫资源型,php:资源(resource)数据类型实例详解
什么是资源数据类型?
资源数据类型是PHP4引进的。资源是一种特殊的变量类型,保存了到外部资源的一个引用:如打开文件、数据库连接、图形画布区域等。
资源是通过专门的函数来建立和使用的。
资源变量在PHP中的使用$fp = fopen("test.txt", "rw");
var_dump($fp);
fclose($fp);
打印结果:resource(5) of type (stream)
数字5:表示资源ID为5,具体含义后面介绍。
stream:资源类型名称。
资源ID
内核中将注册的资源变量存储在一个HashTable中,并把资源所在HashTable中的key作为资源ID。
所以,实际上PHP中的资源变量实际存储的是一个整型,通过这个ID找到HashTable中对应的资源。#define Z_RESVAL(zval) (zval).value.lval
#define Z_RESVAL_P(zval) Z_RESVAL(*zval)
#define Z_RESVAL_PP(zval) Z_RESVAL(**zval)
上面的宏,是内核中ZE为资源变量赋值的API,看出确实是对整型变量的赋值。
资源类型名称
为了区分资源类型,需要为我们定义的资源定义类型名称。#define MY_RES_NAME "my_resource" //资源类型名称,PHP通过var_dump打印资源变量时会看到这个名称
static int my_resource_descriptor;
ZEND_MINIT_FUNCTION(jinyong)<
php什么叫资源型,php:资源(resource)数据类型实例详解相关推荐
- php 字符串表示,php:字符串(string)数据类型实例详解
什么是字符串(string)? 字符串就是连续的字符序列,由数字,字母和符号组成.在字符串的每个字符只占用一个字节. 在PHP中,有三种定义字符串的方式,分别是单引号('),双引号(")和定 ...
- php怎么定义浮点型,php:浮点型(float)数据类型实例详解
什么是浮点(float)数据类型? 浮点数据类型就是我们常见的小数,想"0.7","100.2"这些都是浮点型数据,浮点数据类型既可以用来存储整数,也可以存储小 ...
- 【Redis】数据类型的详解与使用场景【原创】
文章目录 Redis数据类型的详解与使用场景 1-1 NoSQL的概述 1. 概述 2. 为什么需要NoSQL 3. NoSQL产品 4. 分类 5. 特点 2-1 Redis的概述 1. 概述 2. ...
- MySQL操作之JSON数据类型操作详解
MySQL操作之JSON数据类型操作详解 这篇文章主要介绍了MySQL操作之JSON数据类型操作详解,内容较为详细,具有收藏价值,需要的朋友可以参考. 概述 mysql自5.7.8版本开始,就支持了j ...
- pythontuple数据类型_Python数据类型之Tuple元组实例详解
本文实例讲述了Python数据类型之Tuple元组.分享给大家供大家参考,具体如下: tuple元组 1.概述 本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表示. 特点:一 ...
- Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)
Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) 本文目录: 一.[旋转的精灵女孩]案例运行效果 二.Three.js简介 三.Three.js代码正常运行显示条件 (1)不载入 ...
- Redis五种基本数据类型底层详解(原理篇)
Redis五种基本数据类型底层详解 详细介绍Redis用到的数据结构 简单动态字符串 SDS和C字符串的区别 总结 链表 字典 哈希表 字典 哈希算法 解决键冲突 rehash(重点) 渐进式reha ...
- Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(三)
Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(三) 本篇目录: 六.完整构建整个[旋转的精灵女孩]实例 (1).新建.启动webGL工程空间 (2).构建项目的目录层次结构 (2. ...
- Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(二)
Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(二) 本篇目录: 五.实例中所使用的代码语法详细解释 (1).构建一个三维空间场景 (2).选择一个透视投影相机作为观察点 (a).创 ...
最新文章
- 基于Matlab的神经网络结合遗传算法在非线性函数极值寻优中的应用
- java中this关键词
- 近期发现的一些-20190519
- “腾讯看点”打响信息流的全面战争
- java 验证码透明背景_Java中的证书透明度验证
- Gradle中的buildScript,gradle wrapper,dependencies等一些基础知识
- KVM精简教程(七):常用虚拟机管理
- python | 关键词快速匹配检索小工具 pyahocorasick / ahocorapy
- Tensorflow-gpu 2.4.1与CUDA11.1,cuDNN8.1配置问题
- 如何写出整洁规范的R代码?是时候讨论一下代码规范性了
- python 如何显示时钟_python控制台显示时钟的示例
- IDC:第三季度企业WLAN市场增长强劲
- hql 占位符_hibernate中如何使用占位符拼接HQL
- 安装 ansible tower 报错:
- c# aes解密 java,C#实现的AES加密解密完整实例
- java到达时间后自动执行代码_java设置按时间自动执行
- 通过关键字查询地理坐标(天地图)
- 重磅 | 智能工厂整体实施方案(附PPT下载)
- 快应用如何接入微信支付
- mac 查看本地php 版本,Mac系统版本怎么看
热门文章
- Delphi调用LibVLC播放视频,窗口如何响应键盘鼠标的消息?OnClick、OnDblClick、OnMouseMove
- php下一代的五个framework介绍
- 「雕爷学编程」Arduino动手做(27)——BMP280气压传感器
- Android 开发:Paint画笔的基本使用方法
- Yelp reviews - Polarity-数据集
- 计算机进到系统闪屏没有桌面,电脑闪屏,教您电脑显示器屏幕出现闪屏怎么处理...
- 装装糊涂,世事皆通达
- [喵咪大数据]Hadoop单机模式
- 戴尔DELL E6530 minipcie接口扩展nvme盘,express接口装nvme盘
- vscode——HTML网页的内容添加和部分标签的使用