PHP中的数据类型
大家都知道,PHP中的整型是long型的,对于:
<?PHP
echo 2888888888;
在32位机器上已经超过了long型的表达范围,应该输出负数吧,但是没有,为什么呢?
好像:
PHP在解析的时候,不是遇见数字就是long型的,至少这里被解释成了DOUBLE型的了,PHP中的数据类型:
/* data types */
/* All data types <= IS_BOOL have their constructor/destructors skipped */
#define IS_NULL 0
#define IS_LONG 1
#define IS_DOUBLE 2
#define IS_BOOL 3
#define IS_ARRAY 4
#define IS_OBJECT 5
#define IS_STRING 6
#define IS_RESOURCE 7
#define IS_CONSTANT 8
#define IS_CONSTANT_ARRAY 9
/* Ugly hack to support constants as static array indices */
#define IS_CONSTANT_INDEX 0x80
在echo的时候总是把数据通过: zend_make_printable_zval(.. 函数转换成char * ,len ,然后输出的。
zend.h中定义了数据的保存方式:
typedef union _zvalue_value {
long lval; /* long value */
double dval; /* double value */
struct {
char *val;
int len;
} str;
HashTable *ht; /* hash table value */
zend_object_value obj;
} zvalue_value;
struct _zval_struct {
/* Variable information */
zvalue_value value; /* value */
zend_uint refcount;
zend_uchar type; /* active type */
zend_uchar is_ref;
};
具体还有更多东西需要研究,现在没时间了。。。
建议继续学习:
- MySQL数据库中的5种数据类型简介 (阅读:4194)
- MySQL数据库数据类型之枚举类型ENUM测试总结 (阅读:3898)
- MySQL数据库数据类型之ENUM、SET、BOOL/BOOLEAN、TINYINT (阅读:2714)
- Java数据类型和MySql数据类型对应表 (阅读:2205)
- 再谈JavaScript的数据类型问题 (阅读:2116)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:phpor 来源: PHPor 的blog
- 标签: 数据类型
- 发布时间:2011-02-28 23:20:56
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] android 开发入门
- [53] 图书馆的世界纪录
- [52] Go Reflect 性能
- [49] 【社会化设计】自我(self)部分――欢迎区
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑