为了账号安全,请及时绑定邮箱和手机立即绑定

关于global的使用疑问

关于global的使用疑问

PHP
慕田峪7331174 2019-03-13 22:31:11
<? $var1 = 1; $var2 = 2; function test() { global $var1,$var2; $var1 = &var2; } test(); echo $var1 ?> 答案是1 我的思路: global 将 test 中的 $var1,$var2 定义成两个指针,其中 &$var1 指向 1,&$var2 指向 2. $var1 = &$var2; 此时又将 $var1 赋值 2 test() 之后, $var1 不应该等于2吗?
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

$var1 = &$var2,$var1是存放的$var2的地址啊,$var1本应该就是1啊,疑惑的应该是$var2为什么等于2不等于1啊?
查看完整回答
反对 回复 2019-03-18
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

赋值语句改成:$var1 = $var2;

查看完整回答
反对 回复 2019-03-18
?
侃侃无极

TA贡献2051条经验 获得超10个赞

php 中引用并不是指针,global 的定义本身就是引用方式实现的。
你可以把 函数去掉 $var1 $var2 的结果都是2
PHP手册中已经有说明

在一个函数域内部用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用。。这有可能导致预料之外的行为
查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 307 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信