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

PHP函数源码中的return_value变量,return_value哪里来的

2013-07-07

最近在看PHP的C源码,经常发现在函数定义中莫名其妙地出现一个没有任何声明的return_value变量,Google了一下才知道,这个变量是通过宏展开的。

在mainphp.h中:

#define PHP_FUNCTION    ZEND_FUNCTION

在Zendzend_API.h中:

#define ZEND_FN(name) zif_##name
#define ZEND_NAMED_FUNCTION(name)	void name(INTERNAL_FUNCTION_PARAMETERS)
#define ZEND_FUNCTION(name)		ZEND_NAMED_FUNCTION(ZEND_FN(name))

在Zendzend.h中:

#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC

举个例子来说,PHP_FUNCTION(strtolower)最终会展开成为:

void zif_strtolower(int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC)

return_value其实是作为函数形参出现的。

参考链接:PHP源码阅读笔记十二:return_value 返回值

类别:技术文章 | 阅读:134243 | 评论:0 | 标签:php php内核 return_value

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

“PHP函数源码中的return_value变量,return_value哪里来的”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS2.5Beta5(最后更新14年05月25日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

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

☟在github上follow我☟

标签云

友情链接