Possible Duplicate:
Reference assignment operator in php =&
$var2 = $var1;
$var2 = &$var1;
Example:
$GLOBALS['a']=1;
function test()
{
    global $a;
    $local=2;
    $a=&$local;
}
test();
echo $a;
Why is $a still 1 ?
Possible Duplicate:
Reference assignment operator in php =&
$var2 = $var1;
$var2 = &$var1;
Example:
$GLOBALS['a']=1;
function test()
{
    global $a;
    $local=2;
    $a=&$local;
}
test();
echo $a;
Why is $a still 1 ?
 
    
     
    
    The operator =& works with references and not values.
The difference between $var2=$var1 and $var2=&$var1 is visible in this case :
$var1 = 1;
$var2 = $var1;
$var1 = 2;
echo $var1 . " " . $var2; // Prints '2 1'
$var1 = 1;
$var2 =& $var1;
$var1 = 2;
echo $var1 . " " . $var2; // Prints '2 2'
When you use the =& operator you don't say to $var2 "take the value of $var1 now" instead you say something like "Your value will be stored at the exact same place that the value of $var1". So anytime you change the content of $var1 or $var2, you will see the modification in the two variables.
For more informations look on PHP.net
EDIT :
For the global part, you'll need to use $GLOBALS["a"] =& $local; Cf. documentation.
 
    
    When you do $var2 = $var1, PHP creates a copy of $var1, and places it in $var2. However, if you do $var2 = &$var1, no copy is made. Instead, PHP makes $var2 point at $var1 - what this means is that you end up with two variables that point at the exact same thing.
An example:
$var1 = "Foo";
$var2 = $var1; // NORMAL assignment - $var1's value is copied into $var2
$var3 = &$var1; // NOT normal copy!
echo $var2; // Prints "Foo".
echo $var3; // Also prints "Foo".
$var1 = "Bar"; // Change $var1.
echo $var2; // Prints "Foo" as before.
echo $var3; // Now prints "Bar"!
 
    
    global $a;
This is equivalent to:
$a = &$GLOBALS['a'];
When you assign $a a new reference, you're changing $a and not $GLOBALS['a'].
What do you expect to be output below?
$GLOBALS['a']=1;
function test()
{
    $a='foobar';          // $a is a normal variable
    $a=&$GLOBALS['a'];    // same as: global $a;
    $local=2;
    $a=&$local;
}
test();
echo $a;
