PHP扩展 – 从另一个PHP函数调用您自己的PHP函数
发布时间:2020-12-13 21:39:23 所属栏目:PHP教程 来源:网络整理
导读:假设我们有一个自定义 PHP扩展,如: PHP_RSHUTDOWN_FUNCTION(myextension){ // How do I call myfunction() from here? return SUCCESS;}PHP_FUNCTION(myfunction){ // Do something here ... RETURN_NULL;} 如何从RSHUTDOWN处理程序调用myfunction()? 解决
假设我们有一个自定义
PHP扩展,如:
PHP_RSHUTDOWN_FUNCTION(myextension) { // How do I call myfunction() from here? return SUCCESS; } PHP_FUNCTION(myfunction) { // Do something here ... RETURN_NULL; } 如何从RSHUTDOWN处理程序调用myfunction()? 解决方法
使用提供的宏,调用将是:
PHP_RSHUTDOWN_FUNCTION(myextension) { ZEND_FN(myFunction)(0,NULL,0 TSRMLS_CC); return SUCCESS; } 当您将函数定义为PHP_FUNCTION(myFunction)时,预处理器会将您的定义扩展为: ZEND_FN(myFunction)(INTERNAL_FUNCTION_PARAMETERS) 反过来又是: zif_myFunction(int ht,zval *return_value,zval **return_value_ptr,zval *this_ptr,int return_value_used TSRMLS_DC) 来自zend.h和php.h的宏: #define PHP_FUNCTION ZEND_FUNCTION #define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name)) #define ZEND_FN(name) zif_##name #define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS) #define INTERNAL_FUNCTION_PARAMETERS int ht,int return_value_used TSRMLS_DC #define INTERNAL_FUNCTION_PARAM_PASSTHRU ht,return_value,return_value_ptr,this_ptr,return_value_used TSRMLS_CC (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |