php的global

global声明变量就是对外部变量的同名引用,变量本身的作用范围仍然在函数体内。改变这些变量的值,外部的同名变量自然也改变。

<?php 
 
$var1 = 1;    
$var2 =[1,2];    
function test_global()    
{    
    global $var1,$var2;    
    $var1=&$var2;  
    print_r($var1);
    $var1=7;
    // echo $var1."\n";
    // $var2=3; 
}
test_global();    
print_r($var1);
print_r($var2);

 ?>

输出的结果:1和7.

原因:因为global 引用了外部的$var1  然后内部引用发生变化变成引用$var2  而外部的$var1并没有被赋值。更通顺可以用指针来理解,在方法test_global方法中$var1指针指向&$var2这时$var1和$var2是相同的一个对象,那为什么外部没有$var1没有变那是因为作用域的问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值