您的位置:

php传值和传引用使用场景(php引用传值和非引用传值的区别)

本文目录一览:

请说明php中传值与传引用的区别.什么时候传值什么

传值,

是把实参的值赋值给行参

那么对行参的修改,不会影响实参的值

传引用

真正的以地址的方式传递参数

传递以后,行参和实参都是同一个对象,只是他们名字不同而已

对行参的修改将影响实参的值

所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。

所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。此时,如果对目标对象进行修改,内存中的数据也会改变。

说明php中传值与传引用的区别,并说明传值什么时候传引用

按值传递:函数范围内对值的任何改变在函数外部都会被忽略

按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

按引用传递则不需要复制值,对于性能提高很有好处。

php值传递和引用传递

值传递是将右边变量的数据值本身,拷贝一份,赋值给左边变量。

例如:

可见:值传递之后,两个变量互不影响,相互独立,没有关系了,各自有各自的存放空间,改变一个,另一个不受影响。

原理如下:

引用传递是将右边变量对数据的引用关系,传给左边的变量

原理如下:

引用传递,后一个变量的值,会随着前一个变量的值的改变而改变。