您的位置:首页 > 编程语言 > PHP开发

php引用&符号详解

2016-08-24 09:30 218 查看
在PHP 中引用的意思是:不同的名字访问同一个变量内容。

<?php
$a = "date";
$b = &$a;
echo $a; // date
echo $b; // date
$b = "date1";
echo $a; // date1
echo $b; // date1
unset($a);
echo $b; // date1
?>

就是给$a增加了一个别名$b,如果删除了$a,只是删除了这个变量的名字,并没有删除变量的内容,用别名还是可以把这个变量的内容显示出来。(如图关系)



对象的引用

<?php
class a{
var $abc="ABC";
}
$b=new a;
$c=$b;
echo $b->abc;//这里输出ABC
echo $c->abc;//这里输出ABC
$b->abc="DEF";
echo $c->abc;//这里输出DEF
?>

以上代码是在PHP5中的运行的效果,在PHP5中 对象的复制 是通过引用来实现的。

上列中$b=new a; $c=$b; 其实等效于$b=new a; $c=&$b;

PHP5中默认就是通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本。 为了这样的目的,PHP定义了一个特殊的方法,称为__clone。

引用的作用

如果程序比较大,引用同一个对象的变量比较多,并且希望用完 该对象后手工清除它,建议用 "&" 方式,然后用$var=null的方式清除。其它时候还是用php5的默认方式吧.。

另外, php5中对于大数组的传递,建议用 "&" 方式, 毕竟节省内存空间使用。

取消引用

当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。

例如:

<?php
$a = 1;
$b =& $a;
unset ($a);
?>

不会 unset $b,只是 $a。

可以参看变量的引用那段

global 引用

当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。

它等价于下面这段代码:

<?php
$var =& $GLOBALS["var"];
?>

这意味着,例如,unset $var 不会 unset 全局变量。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息