①传址为了在执行函数的同时,同时改变函数参数值,而传值不期望改变.
对传值,传址,函数均无影响,对我国计划生育也无影响,只是打印出一个br/,使输出结果换行,你可在传址函数也加上br/
传值,
是把实参的值赋值给行参
那么对行参的修改,不会影响实参的值
传引用
真正的以地址的方式传递参数
传递以后,行参和实参都是同一个对象,只是他们名字不同而已
对行参的修改将影响实参的值
所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间.
所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间.此时,如果对目标对象进行修改,内存中的数据也会改变.
打个比喻,一个盒子里有一个苹果,传值就是把这个苹果复制成另外一个苹果给要传的对象,至于这个对象怎么弄复制的苹果跟原来的那个没关系,而传值则是把盒子给了这个对象,那么这个对象要把这里面的苹果怎么弄那这个苹果就要改变,不知解释的你是否明白
传值要重新构造一份原参数的拷贝
传引用则不需要
传值对参数的修改不会改变原参数
传引用时可以直接修改原参数
至于什么时候传引用,这看你的需要.
如果你的参数对象比较大(占用内存很多),而函数本身不需要修改原对象时,这个时候就推荐传引用,可以省去临时对象的构造开销.
如果你有实际修改原参数的需要,那么就只能传引用了.
传值:把A的数值传到B,改变B,A不会跟着变,B存的是跟A一样的值;
传址:把A的地址传到B,改变B,A同时跟着变,B存的只是A的地址(类似电脑的快捷方式).
很大区别
传址(传引)就相当于多了一个入口,内存存储区域不变.你对其中入口改变.都会改变其共同的内存空间内容
传值比如:你(张三)是个个体,把你克隆出另外一个出来叫李四.
这时候我打李四,并没有打张三,打张三,并没打李四.是相互独立的
以上就是土嘎嘎小编为大家整理的php传参之传值与传址的区别相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!