PHP扩展开发进阶作者:wf (360电商技术)在第一期PHP扩展开发入门中,简单的介绍了PHP的整体架构和运行机制,并详细说明了如何开发和编译一个基本的PHP扩展,最后在PHP 5.3的环境下结合zend api快速编写了一个静态的PHP扩展.然而仅仅编译一个PHP扩展是没有实际用途的,它只是一个华丽的外壳,为了使扩展实现更强大的功能,需要在扩展中开发一些实用的功能函数.在这一章中,将会着重介绍PHP内核中变量的实现.在此基础上,才能将需要的功能,使用zend api在PHP扩展中实现.1 PHP变量的实现1.1变量的类型PHP内核中通过zval结构体来存储变量,定义在Zend/zend.h文件里,只有四个成员:struct _zval_struct {zvalue_value value;/* 变量的值 */zend_uint refcount__gc;zend_uchar type;/* 变量当前的数据类型 */zend_uchar is_ref__gc;};typedef struct _zval_struct zval;//在Zend/zend_types.h里定义的:typedef unsigned int zend_uint;typedef unsigned char zend_uchar;zval里的refcout__gc是zend_uint类型,也就是unsig
...
继续阅读
(23)