PHP中使用&赋值与=赋值的区别

PHP开发项目,有时会用到&赋值,那它有什么区别呢,看看下同的示例就知道了

[php] view plain copy
 
  1. <p>$var1=1;    
  2. $var2=2;    
  3. function test1(){    
  4.     $GLOBALS['var2'] = $GLOBALS['var1'];    
  5.     $GLOBALS['var2'] = 3;  
  6. }    
  7. test1();    
  8. echo $var1; //1  
  9. echo $var2; //3</p><p>  
  10. $var3=1;    
  11. $var4=2;    
  12. function test2(){    
  13.     $GLOBALS['var4'] = &$GLOBALS['var3'];    
  14.     $GLOBALS['var4'] = 3;  
  15. }    
  16. test2();    
  17. echo $var3; //3  
  18. echo $var4; //3</p>  


为什么$var1的打印结果是1,而$var3的打印结果为3呢?其实是原因通过&方式进行赋值,是把var4与var3指向了同一个存储地址,所以无论修改var3或var4的值,它们是一样,可以理解为他们是一个变量,有两个不能的称呼。

posted @ 2016-12-25 19:34  天涯海角路  阅读(182)  评论(0)    收藏  举报