如果zval是一个可调用对象,我如何在扩展c代码中运行它?
或者如何将azval
转换为azend_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
}
关于c - 如何在php extension dev中调用`callable` zval?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12553589/