PHP引用示例

本文详细介绍了PHP中的引用概念,与C语言和C++的引用进行了对比,通过实例展示了引用如何在PHP中实现数据共享与传递,并探讨了引用的取消与作用范围。

PHP的引用 & 与C语言的指针不一样,与C++的引用比较类似,可以看做是“别名”,也就是“你变成了我,我也变成了你”。

一、普通变量的引用

$fruits=array('apple','grape','watermelon');
$fruits_alias=&$fruits;
array_push($fruits_alias,'banana','pear');
var_dump($fruits);
array_pop($fruits);
var_dump($fruits_alias);

 运行结果

array(5) { [0]=> string(5) "apple" [1]=> string(5) "grape" [2]=> string(10) "watermelon" [3]=> string(6) "banana" [4]=> string(4) "pear" }
array(4) { [0]=> string(5) "apple" [1]=> string(5) "grape" [2]=> string(10) "watermelon" [3]=> string(6) "banana" }

二、函数参数的引用

类似C语言的传址调用,函数会修改传入的参数

$calc=array('sum'=>0,'params'=>array());

function push_number($number,&$calc){
	array_push($calc['params'],$number);
	$calc['sum']=$calc['sum']+$number;
}

push_number(1, $calc);
push_number(2, $calc);
push_number(3, $calc);

var_dump($calc);

运行结果

array(2) { ["sum"]=> int(6) ["params"]=> array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } }

三、函数返回值引用

function &add($x){
	static $result=0; //申明一个静态变量
	$result+=$x;
	return $result;
}

echo add(1).',';
echo add(2).',';
echo add(3);

运行结果

1,3,6

引用的取消可以用unset函数,请看下面示例

$a=1;
$b=&$a;
$c=&$a;
unset($a);
$b++;
$c++;
echo $b.' '.$c;

运行结果

3 3

说明b和c还是一样的,如果用$b===$c比较会返回true



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值