/** * 执行一个函数 * 第二个以及以后的参数 将传递给函数 * @param string $fRoute 函数名 * @return mixed 函数结果 */ function F($fRoute) { static $_fTree = array(); $p = func_get_args(); array_shift($p); if (isset($_fTree[$fRoute])) { return call_user_func_array($_fTree[$fRoute], $p); } $cFile = XWB_plugin::_getIncFile($fRoute, 'func'); require_once $cFile; $pp = preg_match("#^([a-z_][a-z0-9_\\./]*/|)([a-z0-9_]+)(?:\\.([a-z_][a-z0-9_]*))?\$#sim", $fRoute, $m); if (!$pp) { trigger_error("fRoute : [ {$fRoute} ] is invalid ", E_USER_ERROR); return false; } $_fTree[$fRoute] = empty($m[3]) ? $m[2] : $m[3]; if (!function_exists($_fTree[$fRoute])) { trigger_error("Can't find function [ {$_fTree[$fRoute]} ] in file [ {$cFile} ]", E_USER_ERROR); } return call_user_func_array($_fTree[$fRoute], $p); }