这两段代码运行结果为啥不一样那,还有请教global原理。
global $var1,$var2;
$var1 = 1;  
$var2 = 2;  
function test(){  
     $var2 = &$var1;  
}  
test();  
echo $var2;  global $var1,$var2;
$var1 = 1;  
$var2 = 2;  
$var2 = &$var1;  
echo $var2;  

解决方案 »

  1.   

    第二个就不说了。第一个方法里面没引入global,如果你想echo $var2;的时候输出1,得把方法里赋值的&去掉
      

  2.   

    我这样改 没有想到是错的global $var1,$var2;
    $var1 = 1;  
    $var2 = 2;  
    function test(){  
         $var2 = &$var1;  
        echo $var2;
    }  
    test();  
      
      

  3.   

    global $var1,$var2;
    $var1 = 1;  
    $var2 = 2;  
    function test($var1,$var2){  
         $var2 = &$var1;  
        echo $var2;
    }  
    test();  
      
    这样改也是错的。
      

  4.   

    第二个好理解吧。
    第一个。要在test里global
      

  5.   

    第一里面  var2是新的局部变量   跟外面的var2不是一个
      

  6.   


    $var1 = 1;
    $var2 = 2;
    function test(){
       global $var1,$var2;
         $var2 = $var1;
       echo $var2;
    }
    test();
      

  7.   


    错了 global在哪都是一个结果
      

  8.   

    嘿嘿
    <?php 
    global $var1,$var2;
    $var1 = 1;  
    $var2 = 2;  
    function test(){
    global $var1,$var2;  
         $var2 = &$var1;
         echo $var2;  
    }  
    test();  
    echo $var2;网上看到这句话,应该是对的:
    global $var; is equivalent to $var =& $GLOBALS['var'].