2014年10月12日
PHP可变变量,变量的引用
可变变量
有时候使用可变变量名很方便的,就是说,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。比如:
可变变量必须是$挨在一起,不可使用$abc$hello
<?php $hello = "world"; $$hello = "name"; $$$hello = "age"; $$$$hello = "sex"; echo $hello; //world echo "<br>"; //不输出age echo $$hello; //name echo "<br>"; echo $$$hello; //age echo "<br>"; echo $world; //name echo "<br>"; echo $age; //sex;
变量的引用
引用操作符&可以在关联赋值中使用,就像一个别名,使得变量指向了内存的相同地址
<?php $a=5; $b=&$a; echo $b; //输出5 $a=7; echo $b; //输出7
c语言可以把变量地址输出,在php中无法直接输出地址(echo &$a),即使把&$a赋值到$c,输出的结果还是变量值,非地址。
$c存的是指向a的指针,代表$a和$c捆绑在一起了
<?php $a = 10; $b = 20; $c = &$a; $a = 100; $c = 500; echo $a; echo "<br>"; echo $c;
只有变量才有地址,也就是只有变量才能有应用
一个变量发生变化,另一个变量的值也会变化
在使用unset()函数时,如果有引用关系,只是理解除了这种引用关系,只删除一个名字,另一个还在
如果两个变量是引用关系,一个变,另一个也变,但如果其中一个引用,不是普通的值,而是一个新的引用,则改变引用关系
<?php $a = 10; $b = &$a; $c = 100; $b = &$c; $b = 99; echo $a; echo "<br>"; echo $b; echo "<br>" echo $c;