技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> PHP中的数据类型

PHP中的数据类型

浏览:2321次  出处信息

大家都知道,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;
};

具体还有更多东西需要研究,现在没时间了。。。

建议继续学习:

  1. MySQL数据库中的5种数据类型简介    (阅读:4194)
  2. MySQL数据库数据类型之枚举类型ENUM测试总结    (阅读:3898)
  3. MySQL数据库数据类型之ENUM、SET、BOOL/BOOLEAN、TINYINT    (阅读:2714)
  4. Java数据类型和MySql数据类型对应表    (阅读:2205)
  5. 再谈JavaScript的数据类型问题    (阅读:2116)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1