<?php

 $var1 = 1;
$var2 = 2; function foo(){
global $var1,$var2;
$var2 = &$var1;
} function test(){
global $var1;
unset($var1);
} test();
echo 'var1 = '.$var1.'<br/>'; foo();
echo 'var2 = '.$var2; ?>

各位看官猜猜最后的运行结果是什么?

如果将第8行中的代码改为:$var2 = $var1,最后的运行结果又是什么?

最后的运行结果是:

var1 = 1
var2 = 2

如果将第8行中的代码改为:$var2 = $var1,最后的运行结果是:

var1 = 1
var2 = 2

这是因为global $var1,$var2是$var1,$var2的别名。第8行代码只是将global $var2和$var1绑定,这并不影响$var2,第13行也是同样的道理。

如果将第8行中的代码改为:$var2 = $var1,它改变了全局变量$val2的值

05-11 17:31