在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
classa{
var$abc="ABC";
}
$b=newa;
$c=$b;
echo$b-abc;//这里输出ABC
echo$c-abc;//这里输出ABC
$b-abc="DEF";
echo$c-abc;//这里输出DEF
?
以上代码是在PHP5中的运行的效果,在PHP5中对象的复制是通过引用来实现的。
上列中$b=newa;$c=$b;其实等效于$b=newa;$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全局变量。
白癜风软膏能不能治白癜风中科白癜风医院微信