<?php
$my_var = "abc";
function my_fun() {
echo $my_var;
}
my_fun();
?>在函数内部为何不能访问函数外面的变量
函数内部的变量是局部变量
函数外面的是全局变量 按理说应该在函数内部能访问外面的变量
为何函数内部提示:the local variable $my_var may not have been initialized求大牛高手帮忙解说下,不甚感激!

解决方案 »

  1.   


    在函数内部为何不能访问函数外面的变量   ---可以方问函数外部的全局变量,
    函数内部的变量是局部变量  
    函数外面的是全局变量 按理说应该在函数内部能访问外面的变量  --是可以访问的
    为何函数内部提示:the local variable $my_var may not have been initialized求大牛高手帮忙解说下,不甚感激!
    $my_var = "abc";    
    global $my_var = "abc"; 
      

  2.   

    用你的提示错误哦,错误信息:
    Parse error: syntax error, unexpected '=', expecting ',' or ';'line 5
      

  3.   

    global $my_var;
    $my_var = "abc";
      

  4.   

    <?php
    global $my_var;
    $my_var='abc';function my_fun() {
    global $my_var;
        echo $my_var;
    }
    my_fun();
    ?>
      

  5.   

    你可以这么理解,函数内和函数外是两个世界,两个世界时间变量默认是不认识的,只有介绍了才有机会认识,介绍方法就是global。
    <?php
    $a = 'abc';
    function aaa() {
        echo $a; //这个你可以写成$GLOBALS['aa'], 也可以在这语句上面global $a;
    }
    ?>
      

  6.   

    第二行的global $my_var;有毛用啊?
      

  7.   

    非常感谢
    但没有解决我问题哦
    我的问题是变量返回访问的
    你的意思是在变量前面+global 就可以变为全局变量了
    可是我试过了 只有在函数里面的变量前面+global 才能在函数内部访问外面的变量
    在函数外面的变量前面+global 毛用不起
    不信你试试
      

  8.   

    在函数外面的变量前面+global 毛用不起
    函数外面的变量就是全局变量了已经,+global有毛用
    函数里面的变量加global才是全局变量,这样设计就是为了容易区分和理解,况且手册上例子举的的很明白
    http://www.php.net/manual/zh/language.variables.scope.php
      

  9.   

    <?php
    $a = 'abc';
    function aaa() {
        echo $a; //这个你可以写成$GLOBALS['aa'], 也可以在这语句上面global $a;
    }
    ?>