不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-10-13 15:48  分类:Linux_C  编辑

PHP_FE宏替换过程:

PHP扩展研究之 PHP_FE 宏替换过程:

// zend函数入口
const zend_function_entry helloworld_functions[] = {
    // PHP_FE(array_max,NULL)  // 此处和下面写法效果相等
    {
        "array_max", 
        zif_array_max, 
        NULL, 
        (zend_uint)(sizeof(NULL) / sizeof(struct _zend_arg_info) - 1), 
        0
    },
    PHP_FE_END    /* Must be the last line in helloworld_functions[] */
};

替换之前:

PHP_FE(array_max,NULL)

1次替换:

ZEND_FE(array_max,NULL)

2次替换:

ZEND_FENTRY(array_max, zif_array_max, NULL, 0)

3次替换:

ZEND_FENTRY(array_max, zif_array_max, NULL, 0)

4次替换:

{ 
    'array_max', 
    zif_array_max, 
    NULL, 
    (zend_uint) (sizeof(NULL) / sizeof(struct _zend_arg_info)-1), 
    0 
},