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种数据类型简介 (阅读:4361)
- MySQL数据库数据类型之枚举类型ENUM测试总结 (阅读:4093)
- MySQL数据库数据类型之ENUM、SET、BOOL/BOOLEAN、TINYINT (阅读:2945)
- Java数据类型和MySql数据类型对应表 (阅读:2265)
- 再谈JavaScript的数据类型问题 (阅读:2171)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:phpor 来源: PHPor 的blog
- 标签: 数据类型
- 发布时间:2011-02-28 23:20:56
-
[91] memory prefetch浅析
-
[53] 基本排序算法的PHP实现
-
[48] 深入浅出cassandra 4 数据一致性问
-
[39] 转载:cassandra读写性能原理分析
-
[38] javascript插入样式
-
[37] JS中如何判断字符串类型的数字
-
[37] MySQL半同步存在的问题
-
[35] 字符引用和空白字符
-
[34] Inline Form Labels
-
[32] 获取Dom元素的X/Y坐标