taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

ZEND_FUNCTION / PHP_FUNCTION 参数

2012-04-05
ZEND_FUNCTION(my_function)展开是: void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
而INTERNAL_FUNCTION_PARAMETERS展开是:
 #define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_  used TSRMLS_DC

于是:
void zif_my_function(
    int ht,
    zval * return_value,
    zval * this_ptr,
    int return_value_used,
    zend_executor_globals * executor_globals);

 PHP 调用函数的 Zend 参数

参数说明
ht这个参数包含了Zend 参数的个数。但你不应该直接访问这个值,而是应该通过 ZEND_NUM_ARGS() 宏来获取参数的个数。
return_value这个参数用来保存函数向 PHP 返回的值。访问这个变量的最佳方式也是用一系列的宏。后面我们会有详细说明。
this_ptr根据这个参数你可以访问该函数所在的对象(换句话说,此时这个函数应该是一个类的“方法”)。推荐使用函数 getThis() 来得到这个值。
return_value_used这个值主要用来标识函数的返回值是否为脚本所使用。0 表示脚本不使用其返回值,而 1 则相反。通常用于检验函数是否被正确调用以及速度优化方面,这是因为返回一个值是一种代价很昂贵的操作(可以在 array.c 里面看一下是如何利用这一特性的)。
executor_globals这个变量指向 Zend Engine 的全局设置,在创建新变量时这个这个值会很有用。我们也可以函数中使用宏 TSRMLS_FETCH() 来引用这个值。

类别:技术文章 | 阅读:161415 | 评论:0 | 标签:zend

想收藏或者和大家分享这篇好文章→

“ZEND_FUNCTION / PHP_FUNCTION 参数”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云