yangzailu

导航

PHP中按值传递和引用传递的区别

有次跟朋友讨论对象传值的方式时提到引用传值时,在大脑中搜索五秒钟,果断确定在这两个项目当中并没有用到。今天去问了一下度娘,顺便做了个小测试:

按值传递:

引用传递:

按值传递中原来参数的值在调用其他函数之后还是原来的值,而引用传递则是改变了原来的值。按照按值传递的做法来传值时,如果需要原来的值发生改变,

则需要在进行代码复制,若是值够大或者是一大串字符串时,会使代码比较多,重复,而引用传递则不需要复制PHP代码,对提高性能这一个方面有很大的优势。

2.值传递跟引用传递的区别?


按值传递函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:
按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的
操作。按引用传递则不需要复制值,对于性能提高很有好处。

Function  test(&$a){
    $a=$a+100;
}
    $b=1;
    Echo  $b;//输出1
    test($b);//这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值就可以改变$b的值了
    echo "<br>";
    echo  $b;// 输出101

 



posted on 2017-11-20 17:06  飞离地平线  阅读(681)  评论(0编辑  收藏  举报