php专区

 首页 > php专区 > PHP应用 > 常用功能 > php 传值与传引用的区别详解 - php高级应用

php 传值与传引用的区别详解 - php高级应用

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

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

在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. $num1 = 15; 
  11. $num2 = &$num1
  12. $num2 = 20; 
  13. echo $num1;//输出20 
  14. ?> 
  15. //再比如如下代码: 
  16. function func1($a) { 
  17.   $a = $a + 1; 
  18. function func2(&$a) { 
  19.   $a = $a + 1; 
  20. $sample = 1; 
  21. func1($sample);  
  22. echo $sample// 输出 1 
  23.  
  24. $sample = 1; 
  25. func2($sample);  
  26. echo $sample// 输出 2 
  27. ?> 

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

分享到:
nginx与PHP的SERVER_NAME和HTTP_HOST详解...
nginx与PHP的SERVER_NAME和HTTP_HOST详解 ERVER_NAME对应Nginx配置文件中的server_name,通过fastcgi_param设置,如域名指向到IP而不在nginx中设置对应的server_name,PHP取SERVER_NAME为空,如果有多个server_name,取第一个. 例子代码如下: server_name   www.phpfensi.com; fastcgi_param ...
php如何连接mysql数据库 - php高级应用
php如何连接mysql数据库 很多的朋友在问php连接mysql数据库,今天我们就来讲一下最基本的最简单的利用php连接mysql数据库的实例代码吧. $localhost ='localhost';//连接服务器,大多情况下用localhost就可以了,  $user ='root';//mysql登录帐号  $upwd =&...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……