用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php 传值与传引用的区别详解

时间:2015-01-23  来源:西部数据  作者:西部数据

在php中传值与传引用对于我们来讲是有比较大的区别的一个引用可以调用内存地址赋值了,这样只要内存地址中内容变化而赋值的变量也就变化了,付值只是把内存中值给其它变量而己.

传值:

函数参数压栈的是参数的副本.

任何的修改是在副本上作用.没有作用在原来的变量上.

传引用:

压栈的是引用的副本,由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作,(作用和传指针一样,只是引用少了解指针的草纸)

例子代码如下:

  1. function func1($a) { $a = $a + 1;}  
  2. function func2(&$a) { $a = $a + 1;} 
  3.  $sample = 1;  
  4. func1($sample);  
  5.  echo $sample// 输出 1 
  6.  $sample = 1;  
  7. func2($sample);  
  8.  echo $sample// 输出 2 
  9. //例代码如下: 
  10. <?php 
  11. $num1 = 15; 
  12. $num2 = &$num1
  13. $num2 = 20; 
  14. echo $num1;//输出20 
  15. ?> 
  16. //再比如如下代码: 
  17. <?php 
  18. function func1($a) { 
  19.   $a = $a + 1; 
  20. function func2(&$a) { 
  21.   $a = $a + 1; 
  22. $sample = 1; 
  23. func1($sample);  
  24. echo $sample// 输出 1 
  25.  
  26. $sample = 1; 
  27. func2($sample);  
  28. echo $sample// 输出 2 
  29. ?> 

总结一下:传值的话,如果是非对象,会传一个值的拷贝,对这个变量做任何改动都不影响原值,传引用或者传对象,是传真实的内存地址,对这个变量做的改动会影响原值.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门