标题:在PHP的扩展(extension)中调用其他的php函数 出处:Felix021 时间:Mon, 20 Jun 2011 15:28:11 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?2021 内容: => How to call a php function in a php extension 详细的说明参见: [php-5.2.17] /Zend/zend_execute_API.c +623 & +636 call_user_function_ex /ext/standard/basic_functions.c +5174 PHP_FUNCTION(call_user_func_array) /ext/pcre/pcre.c +833 (in function "preg_do_repl_func") http://man.chinaunix.net/develop/php/php_manual_zh/html/zend.calling-user-functions.html http://www.phpfreaks.com/forums/index.php?topic=10272.0 PHP_FUNCTION (caller) { //call_user_function_ex zval *function, *str, *arr; zval **params[10]; MAKE_STD_ZVAL(function); ZVAL_STRING(function, "var_dump", 1); //I wanna call var_dump /* //pass a string as its param MAKE_STD_ZVAL(str); ZVAL_STRING(str, "Hello, world!", 1); params[0] = &str; */ //pass an array as its param MAKE_STD_ZVAL(arr); array_init(arr); add_assoc_string(arr, "name", "felix021", 1); params[0] = &arr; zval *ret; if (call_user_function_ex(CG(function_table), NULL, function, &ret, 2, params, 0, NULL TSRMLS_CC) != FAILURE) { *return_value = *ret; zval_copy_ctor(return_value); zval_ptr_dtor(&ret); return; } else { RETURN_FALSE; } } Generated by Bo-blog 2.1.0