RT ,
检测代码:function check_url($url,$open_check=0){
    global $error;
    if ($open_check == 1){
        $preg_moudle = '/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/';
        if (!preg_match($preg_moudle,$url)){
            $error = public_info('error','在更新网址的时候出现错误~~');
        }
    }
return public_string_special($url);
}
调用函数:function customMenu(){
        $menu_url = check_url($_POST['menu_url'],1);   
        if (isset($error)){
            echo 'insert error';
        } else {
            echo '1';
        }
    }
这里我在调用函数来检测URL是否正确的时候,发现检测不出来$error 的存在,想问下在函数内部声明的全局变量,在另一个函数中无法调用吗~~
求高手啊

解决方案 »

  1.   

    [code]
    function customMenu(){
           global $error;
            $menu_url = check_url($_POST['menu_url'],1);   
            if (isset($error)){
                echo 'insert error';
            } else {
                echo '1';
            }
        }
    [/code]
      

  2.   


    function customMenu(){
            global $error;
            $menu_url = check_url($_POST['menu_url'],1);   
            if (isset($error)){
                echo 'insert error';
            } else {
                echo '1';
            }
        }
      

  3.   


    如果这样写的号,那我就不需要检测 isset($error) 了吧,主要是在出错的情况下 才会产生 $error 啊,
      

  4.   


    我试了一下,如果我将这个function customMenu(){
            $menu_url = check_url($_POST['menu_url'],1);   
            if (isset($error)){
                echo 'insert error';
            } else {
                echo '1';
            }
        }不写成函数形式,是可以调用检测出$error ,但是我写成函数形式就无法检测到$error 了~
      

  5.   

    当然需要啊,你$error又没有初始化
      

  6.   

    2楼的我错了,发现自己学的太少了,刚刚才发现,global $error 只是将其 改成全局变量,现在这要可以正常调用了,不好意思啊,小弟刚学这个,所以啦......
      

  7.   

            function customMenu(){
            global $error;
            $menu_url = check_url($_POST['menu_url'],1);   
            if (isset($error)){
                echo 'insert error';
            } else {
                echo '1';
            }
        }