PHP ����������������������ָ��ͬһ�����ݡ���˼�ǣ���������ʱ��
<?php
$a =& $b;
?>
Note:
$a �� $b ����������ȫ��ͬ�ģ��Ⲣ���� $a ָ���� $b �����෴������ $a �� $b ָ����ͬһ���ط���
Note:
����������õ����鱻��������ֵ���������á��������鴫ֵ������Ҳ����ˡ�
Note:
�����һ��δ����ı����������ø�ֵ�����ò������ݻ����÷��أ�����Զ������ñ�����
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)
?>
ͬ������������ں����У����������ã��Լ����� new ������У�PHP 4.0.4 �Լ��Ժ�汾����
<?php
$bar =& new fooclass();
$foo =& find_var($bar);
?>
Note:
���� & ��������¶���������һ������������������� $this�����������ڸ��൱ǰ��ʵ����û���� & �ĸ�ֵ���������ʵ������������� $this ����������������ϣ��Ⲣ��������Ҫ�Ľ�����������ܺ��ڴ����ĵ����⣬ͨ��ֻ�빤����һ��ʵ�����档
���ܿ����� @ ��������������캯���е��κδ�����Ϣ�������� @new������ &new ���ʱ�ⲻ��Ч�������� Zend �����һ�����Ʋ��һᵼ��һ����������
�����һ�������ڲ���һ������Ϊ global �ı�������һ�����ã�������ֻ�ں����ڲ��ɼ�������ͨ��ʹ�� $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'
?>
Note:
����� foreach ����и�һ���������õı�����ֵ�������õĶ���Ҳ���ı䡣
Example #3 ������ foreach ���
<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
// do something
}
echo $ref; // 3 - last element of the iterated array
?>
�������ĵڶ������������ô��ݱ���������ͨ���ں����ڽ���һ�����ر������Ҹñ����ں��з�Χ��������ͬһ��������ʵ�ֵġ����磺
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
?>
�������ĵ������������÷�����