基本的数据类型有int、double、long、char及各种指针类型。在C语言中,使用变量时,提前定义变量并指定变量类型,而在PHP中变量不需要指定类型。
C语言的数据类型在不同的操作系统中长度不同。
使用 struct 定义就是结构体。zval结构体总大小 16 字节。
- struct _zval_struct {
- zend_value value; /* value 8个字节 */
- union {
- struct {
- ZEND_ENDIAN_LOHI_4(
- zend_uchar type, /* 代表不同类型 */
- zend_uchar type_flags, /* 表示常量或不可变类型 变量标记 */
- zend_uchar const_flags, /* 常量类型标记 */
- zend_uchar reserved) /* 保留字段 */
- } v;
- uint32_t type_info;
- } u1; /* u1 4个字节 */
- union {
- uint32_t next; /* 解决hash冲突的 */
- uint32_t cache_slot; /* 运行时缓存 */
- uint32_t lineno; /* AST抽象语法树 标记php行 */
- uint32_t num_args; /* 函数传入参数的个数 */
- uint32_t fe_pos;