/**
  * 执行一个函数
  * 第二个以及以后的参数 将传递给函数
  * @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);
 }