Try the following code:
<?php
$gGlobal = 1;
function ChangeGlobalValue()
{
global $gGlobal;
$local = 55;
$gGlobal = $local;
print "Value:Global=$gGlobal<BR>";
}
function ChangeGlobalRef()
{
global $gGlobal;
$local = 99;
$gGlobal = &$local;
print "Ref:Global=$gGlobal<BR>";
}
print "Global=$gGlobal<BR>";
ChangeGlobalValue();
print "Global=$gGlobal<BR>";
ChangeGlobalRef();
print "Global=$gGlobal<BR>";
?>
I get the following results:
Global=1
Value:Global=55
Global=55
Ref:Global=99
Global=55
Why does setting a global variable to a reference fail in a function?
Tested on PHP 4.0.4 on IIS5 (CGI version).