PHP 引用传递和值传递

$aa = 123;
$bb = &$aa;
$aa = 234;
echo $bb; //234$aa = 123;
$bb = $aa;
$aa = 234;
echo $bb; //123

& 引用的作用

 如果程序比较大,引用同一个对象的变量比较多,并且希望用完该对象后手工清除它,个人建议用 "&" 方式,然后用$var=null的方式清除. 其它时候还是用php5的默认方式吧. 另外, php5中对于大数组的传递,建议用 "&" 方式, 毕竟节省内存空间使用。

取消引用 &

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

PHP中&&与&的区别

  • 运算符性质的区别
    &&在PHP中是一个逻辑操作符,也叫条件操作符。
    &是逻辑语言,逻dao辑上表示两者属于缺一不可的关系,还可以表示一个人和另外一个人之意,与and同义。如A&B,表示A与B,A和B,A×B。

  • 作用上的区别
    &&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。
    &是将两个二进制的数逐位相与,结果是相与之后的结果。

PHP中值传递与引用传递

借用一张图片

  • 按值传递
    函数范围内对值的任何改变在函数外部都会被忽略
    值传递是把值拷贝一份,两个变量指向两个内存地址
  • 按引用传递
    函数范围内对值的任何改变在函数外部也能反映出这些修改
    引用传递是将一个变量的内存地址标识传给了内外一个变量,两个变量最终指向内存同一个地址
  • 注意
    php 中对于对象默认引用传值
    一般引用传值用在需要在函数体内改变传入参数并且需要影响外部变量的时候使用,其他时候一般使用值传递
$test = 'aaaaaa';
$abc = &$test;
// unset($test);
$test = 'bbb';
echo $abc; // 这时候会输出 bbb,原因是$test和$abc指向同一个地址

$test = 'aaaaaa';
$abc = &$test;
unset($test);
echo $abc; // 这时候会输出aaaaaa,原因是两个变量指向同一个地址,注释一个变量后,内存内仍然是有值的,所以会有输出,如果指向内存的变量都被unset,内存就会释放出来
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值