从c+;中的PHP扩展获取函数参数值+; 我在C++中创建了PHP扩展。在版本中PHP 5.6能够获得当前执行的函数细节。我得到的参数值如下所示 if (real_execute_data->function_state.arguments) { void **p = real_execute_data->function_state.arguments; int arg_count = (int)(zend_uintptr_t)* p; zval *argument_element; for (i = 0; i < arg_count; i++) { argument_element = (zval*)*(p - (arg_count - i)); // here can reads the value from argument_element } } if(real\u execute\u data->function\u state.arguments) { void**p=real\u execute\u data->function\u state.arguments; int arg_count=(int)(zend_uintpttr_t)*p; zval*参数_元素; 对于(i=0;i
在PHP7.2版本中,我在Zend_execute_数据中找不到函数_状态结构。我尝试使用_Zend_arg_info结构,它给出函数参数变量名,而不是值。 如何在上面的PHP7中获取函数参数值?是。我得到了它。 我们可以在PHP7及以上版本中获得如下函数参数(zend_execute_data*real_execute_data)从c+;中的PHP扩展获取函数参数值+; 我在C++中创建了PHP扩展。在版本中PHP 5.6能够获得当前执行的函数细节。我得到的参数值如下所示 if (real_execute_data->function_state.arguments) { void **p = real_execute_data->function_state.arguments; int arg_count = (int)(zend_uintptr_t)* p; zval *argument_element; for (i = 0; i < arg_count; i++) { argument_element = (zval*)*(p - (arg_count - i)); // here can reads the value from argument_element } } if(real\u execute\u data->function\u state.arguments) { void**p=real\u execute\u data->function\u state.arguments; int arg_count=(int)(zend_uintpttr_t)*p; zval*参数_元素; 对于(i=0;i,php,c++,php-extension,php-internals,Php,C++,Php Extension,Php Internals,在PHP7.2版本中,我在Zend_execute_数据中找不到函数_状态结构。我尝试使用_Zend_arg_info结构,它给出函数参数变量名,而不是值。 如何在上面的PHP7中获取函数参数值?是。我得到了它。 我们可以在PHP7及以上版本中获得如下函数参数(zend_execute_data*real_execute_data) int arg\u count=ZEND\u CALL\u NUM\u ARGS(实际执行数据); int i; 对于(i=1;我已经检查过了吗? int arg
int arg\u count=ZEND\u CALL\u NUM\u ARGS(实际执行数据);
int i;
对于(i=1;我已经检查过了吗?
int arg_count = ZEND_CALL_NUM_ARGS(real_execute_data);
int i;
for (i = 1; i <= arg_count; i++)
{
zval *argument_element = ZEND_CALL_ARG(real_execute_data, i);
// we can reads the argument value from "argument_element".
}