Невозможно вызвать пользовательскую функцию php из расширения Zend - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь создать расширение PHP для PHP 7.2, мне уже удалось создать для 5.6 в PHP 7.2 Я сделал необходимые изменения в коде на основе нового Zend API, но теперь я застрял в этой точкеЯ хочу вызвать пользовательскую функцию определения php из расширения.

Я пытался с помощью функции call_user_function_ex вызвать мою функцию определения пользователя.

zval *function_name, *retval_ptr, *param_file, **params[1]; 

TSRMLS_FETCH();

ZVAL_STRINGL(function_name, functionRequire,
        strlen(functionRequire));

ZVAL_STRINGL(param_file, ranKey,
        strlen(ranKey));    

params[0] = &param_file;        
php_printf("%s %s 1st",functionRequire,ranKey);
//RETURN_NULL();
if (call_user_function_ex(CG(function_table), NULL, function_name,
        &retval_ptr, 1, params, 0, NULL TSRMLS_CC) != SUCCESS) {
    php_printf("%s\n",contactInfo );        
    zend_error(E_ERROR, "Function call failed ");
    RETURN_NULL();
}
php_printf("%s %s 2nd",functionRequire,ranKey);
RETURN_NULL();
FREE_ZVAL(function_nameCh);

FREE_ZVAL(function_name);
FREE_ZVAL(param_file);

Я пытался печатать значение после каждого оператора, после чего я понимаю, что он зависал при попытке вызвать функцию "call_user_function_ex".Я делаю что-то не так, но тот же код работает в PHP 5.6

Пожалуйста, помогите.

...