C语言 如何在 php 扩展开发中调用“可调用”zval



如果 zval 是一个可调用的对象,如何在我的扩展 c 代码中运行它?

或者如何将zval转换为zend_fcall_info

在搜索zend_is_callable并深入研究 php src 代码后,我知道如何调用可调用的 zval:

zval ret;
zval* params[] = { param }; // param is zval* too
if (SUCCESS == call_user_function(CG(function_table), NULL, callable, &retval, 1, params TSRMLS_CC)) {
    // callable is a zval*
    // you can do something with the retval now
}

最新更新