这是供js调用的文件(jsi.php):
 $act = request_str_args('act');  //(获取http请求的act字段)
$func_name = "j_$act";
   6     if (!function_exists($func_name)){
   7         return_error('unknown act type');
   8     }
   9 
  10     $func_name();
  下面是各个函数的定义部分了……
我的问题是func_name()这个函数前面后面都没有定义,看来看去也没什么用,可是去掉后就报错了,错误原因是,找不到对应的jsi.html文件,这是为什么啊?
还有就是为什么func_name()前面要加$?

解决方案 »

  1.   


    function hello()
    {
    echo "<h1>hello word;</h1>";
    }$str = "hello";$str();//the result is: hello word;
      

  2.   

    $act = request_str_args('act');  //假定得到的是 xxx
    $func_name = "j_$act"; //这时 $func_name 为 j_xxx 这个就是函数名$func_name(); //于是在这里实际执行的是 j_xxx()
      
      

  3.   

    哦 看懂了 
    再问下:我把$func_name()这行去掉后,为什么会出错呢?题目中我列出出错原因了
      

  4.   


    其实页面正常的执行顺序是先jsi.php后jsi.html,但是我这里的jsi.php是供js调用的代码,不需要html页,我的意思是:func_name();这个函数执行完了是不是会自动返回?
      

  5.   

    楼主,用的是哪个cms.函数是不会自动返回的。
    应该是设置了全局变量,或更改了全局状态。
      

  6.   

    cms?这个不太明白,刚学,比较菜……,你的意思我明白了,我再看看