锟斤拷锟斤拷锟斤拷什么

PHP 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷指锟斤拷同一锟斤拷锟斤拷锟捷★拷锟斤拷思锟角o拷锟斤拷锟斤拷锟斤拷锟斤拷时锟斤拷

<?php
$a 
=& $b;
?>
锟斤拷锟斤拷味锟斤拷 $a 锟斤拷 $b 指锟斤拷锟斤拷同一锟斤拷锟斤拷锟斤拷锟斤拷

Note:

$a 锟斤拷 $b 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷全锟斤拷同锟侥o拷锟解并锟斤拷锟斤拷 $a 指锟斤拷锟斤拷 $b 锟斤拷锟斤拷锟洁反锟斤拷锟斤拷锟斤拷 $a 锟斤拷 $b 指锟斤拷锟斤拷同一锟斤拷锟截凤拷锟斤拷

Note:

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷玫锟斤拷锟斤拷楸伙拷锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷锟斤拷锟斤拷锟斤拷谩锟斤拷锟斤拷锟斤拷锟斤拷榇碉拷锟斤拷锟斤拷锟揭诧拷锟斤拷锟剿★拷

Note:

锟斤拷锟斤拷锟揭伙拷锟轿达拷锟斤拷锟侥憋拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫革拷值锟斤拷锟斤拷锟矫诧拷锟斤拷锟斤拷锟捷伙拷锟斤拷锟矫凤拷锟截o拷锟斤拷锟斤拷远锟斤拷锟斤拷锟斤拷帽锟斤拷锟斤拷锟�

Example #1 锟斤拷未锟斤拷锟斤拷谋锟斤拷锟绞癸拷锟斤拷锟斤拷锟�

<?php
function foo(&$var) { }

foo($a); // $a is "created" and assigned to null

$b = array();
foo($b['b']);
var_dump(array_key_exists('b'$b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c'd')); // bool(true)
?>

同锟斤拷锟斤拷锟斤法锟斤拷锟斤拷锟斤拷锟节猴拷锟斤拷锟叫o拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫o拷锟皆硷拷锟斤拷锟斤拷 new 锟斤拷锟斤拷锟斤拷校锟絇HP 4.0.4 锟皆硷拷锟皆猴拷姹撅拷锟斤拷锟�

<?php
$bar 
=& new fooclass();
$foo =& find_var($bar);
?>
锟斤拷 PHP 5 锟斤拷new 锟皆讹拷锟斤拷锟斤拷锟斤拷锟矫o拷锟斤拷锟斤拷诖锟绞癸拷锟� =& 锟窖撅拷锟斤拷时锟剿诧拷锟揭伙拷锟斤拷锟� E_STRICT 锟斤拷锟斤拷锟斤拷锟较拷锟�

Note:

锟斤拷锟斤拷 & 锟斤拷锟斤拷锟斤拷锟斤拷露锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 $this锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟节革拷锟洁当前锟斤拷实锟斤拷锟斤拷没锟斤拷锟斤拷 & 锟侥革拷值锟斤拷锟斤拷锟斤拷锟斤拷锟绞碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟襟)诧拷锟斤拷 $this 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷希锟斤拷獠拷锟斤拷锟斤拷锟斤拷锟揭拷慕锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟杰猴拷锟节达拷锟斤拷锟侥碉拷锟斤拷锟解,通锟斤拷只锟诫工锟斤拷锟斤拷一锟斤拷实锟斤拷锟斤拷锟芥。

锟斤拷锟杰匡拷锟斤拷锟斤拷 @ 锟斤拷锟斤拷锟斤拷锟�锟斤拷锟斤拷锟斤拷锟届函锟斤拷锟叫碉拷锟轿何达拷锟斤拷锟斤拷息锟斤拷锟斤拷锟斤拷锟斤拷 @new锟斤拷锟斤拷锟斤拷 &new 锟斤拷锟绞憋拷獠伙拷锟叫э拷锟斤拷锟斤拷锟斤拷锟� Zend 锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷撇锟斤拷一岬硷拷锟揭伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟�

Warning

锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷锟斤拷诓锟斤拷锟揭伙拷锟斤拷锟斤拷锟轿� global 锟侥憋拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟矫o拷锟斤拷锟斤拷锟斤拷只锟节猴拷锟斤拷锟节诧拷锟缴硷拷锟斤拷锟斤拷锟斤拷通锟斤拷使锟斤拷 $GLOBALS 锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷恪�

Example #2 锟节猴拷锟斤拷锟斤拷锟斤拷锟斤拷全锟街憋拷锟斤拷

<?php
$var1 
"Example variable";
$var2 "";

function 
global_references($use_globals)
{
    global 
$var1$var2;
    if (!
$use_globals) {
        
$var2 =& $var1// visible only inside the function
    
} else {
        
$GLOBALS["var2"] =& $var1// visible also in global context
    
}
}

global_references(false);
echo 
"var2 is set to '$var2'\n"// var2 is set to ''
global_references(true);
echo 
"var2 is set to '$var2'\n"// var2 is set to 'Example variable'
?>
锟斤拷 global $var; 锟斤拷锟斤拷锟斤拷 $var =& $GLOBALS['var']; 锟侥硷拷写锟斤拷锟接讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫革拷锟斤拷 $var 只锟侥憋拷锟剿憋拷锟截憋拷锟斤拷锟斤拷锟斤拷锟矫★拷

Note:

锟斤拷锟斤拷锟� foreach 锟斤拷锟斤拷懈锟揭伙拷锟斤拷锟斤拷锟斤拷锟斤拷玫谋锟斤拷锟斤拷锟街碉拷锟斤拷锟斤拷锟斤拷玫亩锟斤拷锟揭诧拷锟斤拷谋洹�

Example #3 锟斤拷锟斤拷锟斤拷 foreach 锟斤拷锟�

<?php
$ref 
0;
$row =& $ref;
foreach (array(
123) as $row) {
    
// do something
}
echo 
$ref// 3 - last element of the iterated array
?>

锟斤拷锟斤拷锟斤拷锟侥第讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫达拷锟捷憋拷锟斤拷锟斤拷锟斤拷锟斤拷通锟斤拷锟节猴拷锟斤拷锟节斤拷锟斤拷一锟斤拷锟斤拷锟截憋拷锟斤拷锟斤拷锟揭该憋拷锟斤拷锟节猴拷锟叫凤拷围锟斤拷锟斤拷锟斤拷锟斤拷同一锟斤拷锟斤拷锟斤拷锟斤拷实锟街的★拷锟斤拷锟界:

<?php
function foo(&$var)
{
    
$var++;
}

$a=5;
foo($a);
?>
锟斤拷使 $a 锟斤拷锟� 6锟斤拷锟斤拷锟斤拷锟斤拷为锟斤拷 foo 锟斤拷锟斤拷锟叫憋拷锟斤拷 $var 指锟斤拷锟剿猴拷 $a 指锟斤拷锟酵伙拷锟斤拷锟斤拷荨锟斤拷锟斤拷锟斤拷锟较革拷锟斤拷图锟�锟斤拷锟矫达拷锟斤拷锟斤拷

锟斤拷锟斤拷锟斤拷锟侥碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫凤拷锟斤拷锟斤拷