简体   繁体   English

如何在php extension dev中调用`callable` zval?

[英]How can I call a `callable` zval in php extension dev?

If a zval is a callable object, how can I run it in my extension c code ? 如果zval是可调用对象,如何在扩展C代码中运行它?

or how to convert a zval to a zend_fcall_info 或如何将zval转换为zend_fcall_info

after search for the zend_is_callable and dive into the php src code, I know how to call a callable zval: 搜索了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
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM