<?
$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 回答
![?](http://img1.sycdn.imooc.com/5458464a00013eb602200220-100-100.jpg)
侃侃无极
TA贡献2051条经验 获得超10个赞
php 中引用并不是指针,global 的定义本身就是引用方式实现的。
你可以把 函数去掉 $var1 $var2 的结果都是2
PHP手册中已经有说明
在一个函数域内部用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用。。这有可能导致预料之外的行为
- 3 回答
- 0 关注
- 307 浏览
添加回答
举报
0/150
提交
取消