从HHVM C 扩展运行PHP函数
Run PHP function from HHVM C++ extention
有可能吗?不使用Zend API,仅使用本机。用于在PHP扩展中使用它:
call_user_function(EG(function_table), NULL, &func, &retval, 1, params);
您很可能需要VM_CALL_USER_FUNC((。
Variant vm_call_user_func(const Variant& function, const Variant& params,
bool forwarding = false);
取决于您的扩展时在通话时所做的事情,您可能想捕获异常。
try {
vm_call_user_func(function, params);
} catch (const Object&) {
try {
raise_warning("got exception in my extension");
} catch (const Object&) {
// exception in error handler!
}
}
vm_call_user_func
知道如何处理PHP定义可可的各种方式(例如"SomeClass::someMethod"
,array($obj, "method")
(。
根据如何提供呼叫功能,可能会有更多最佳方法。您可能需要该用户必须提供封闭对象,而不是任何任意回调。由于闭合对象始终是可召唤的(即您不必验证我的"SomeClass::someMethod"
中存在SomeClass
(,因此您可以提取基础对象,将其存储而不是Variant
,而vm_call_user_func()
可以保存一些高架开销解码和验证。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>
相关文章:
- 为什么用C++编写的 phpcpp 扩展函数比用 PHP 编写的函数慢
- PHP 网站在传递图像作为参数时未运行 exec 函数
- 从HHVM C 扩展运行PHP函数
- 从C 中的PHP扩展中获取函数参数值
- 将 PHP 中的 $_POST 变量传递给由 exec() 函数运行的C++程序
- C++按字符串调用函数,比较PHP的性能,如何在C++中优化代码
- 呼叫'php :: Extension :: add()没有匹配函数
- C++相当于 PHP 在 Linux 中的utf8_decode函数
- C++ PHP 的 explode() 函数有等价物吗?
- C++等同于 PHP 函数包/解包
- PHP imagettftext() 等效函数 C++/Java/Python 中的函数
- 带有 CUDA 函数的 PHP 扩展
- 将此 C 函数转换为 PHP
- PHP扩展函数array_init抛出"return_value未声明"
- 如何从php调用c++函数
- 从PHP DLL访问DLL函数
- 如何使用php脚本从.so文件调用函数
- C++ 个函数,在 PHP 中的工作方式类似于 substr()
- php函数执行-连接php和基于c++的服务器
- 调用c++ vs编写php函数