如何在php扩展里调用php函数

在用c写php扩展时需要调用php某些函数,怎么通过c语言调用php函数与方法?

  • 收藏问题
  • 举报

你的IE浏览器版本过低,为了提升体验,

建议升级到IE10以上或使用Chrome、搜狗等浏览器!

2个答案
  • hq114144 2014-10-27 20:43

    我来给个原创的
    1.假如PHP里有这个函数:

      
    function callback($msg)
    {
    echo $msg;
    }
  • 浪迹天涯118614 2014-10-27 20:33

    可以通过这个函数walu_call_user_function来实现。
    函数原型:int walu_call_user_function(zval** retval, zval* obj, char* function_name, char* paras, …);
    调用成功返回1,失败返回0.

    各个参数的说明:
    retval,zval类型的,代表返回值。如果你需要返回值,请传递一个zval类型的变量,不需要返回值可以传递NULL。
    obj,对象实例对应的zval*,如果是PHP函数此处传递NULL。
    function_name,字符串,内容为函数或者方法的名称。
    paras,字符串,由一系列转换字符组成,转换字符由:s,b,z,n组成。
    其它参数,根据paras里的转换字符,给出具体的数据,每个转换字符对应的数据如下:

      
    s  :  char* str, int len。
    b : int bool, 1代表true,0代表false。
    n : 代表NULL,它不需要提供数据。
    z : zval *val, 一般是对象、数组、资源。
    d : double num;