对于值传递和引用传递,书本上的解释比较繁琐,而php面试中总会出现,下面我会通过一个生活的例子带大家理解它们之间区别。

第一步 假设我们去酒店订房间,我们把酒店的门牌号比作变量名,我们把房间里住人数当做给这个变量名赋值的过程

​<?php

$k1=2;//$k1号房间住了2个人

$k2=$k1;//恰巧今天$k1号房间维修,把$k1号房间的人放到$k2房间里面

$k1=10;//假设$k1维修好了,又住进10个人,那么这就是值传递。

echo  "$k1号房间:".$k1."个人";//10

echo  "$k2号房间:".$k2."个人";//1

?>

值传递的特点

1 值相等 也就是$k1给$k2房间里的人是相等的。

2相互独立,互不影响 这就是说,我$k1房间来多少客人和$k2房间客人来多少客人是互相不影响的。这就叫:"道不同不相为谋"。

第二步 以上面为例 假设我们$k1这个房间被维修工挂上两个门牌号$k1和$k2来理解

<?php

$k1=2;//$k1号房间住了2个人

$k2=&$k1;//恰巧今天$k1号房间挂上"$k1"和“$k2”两个门牌号

$k1=10;//假设$k1又住进10个人,那么这就是引用传递。

echo  "$k1号房间:".$k1."个人";//10

echo  "$k2号房间:".$k2."个人";//10因为门牌$k1房间的客人就是门牌$k2里面的客人

?>

引用传递的特点

1相互影响 也就是说$k1中来多少客人,$k2就是显示多少客人,这就叫"拴在一条绳上的蚂蚱"

区别

1.使用上的区别

值传递的符号是=

引用传递符号是&

2意义上的区别

值传递是变量传递是互不影响的,而引用传递则是两个变量指向同一空间相互影响的

如何深入理解php中的值传递和引用传递相关推荐

  1. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  2. Java中的值传递和引用传递

    当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?      答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为 ...

  3. Java中传参数--值传递和引用传递

    ** Java中传参数–值传递和引用传递 ** 在Java中,传参数分为值传递和引用传递. 在Java中的数据类型分为两大类:一类是引用类型,也叫类类型(除了String以外的所有复合数据类型,包括数 ...

  4. java中的值传递和引用传递问题

    值传递与引用传递 最近学基础的时候,老师讲了值传递和引用传递,这个问题一直不太明白,上网查了很多资料,按照自己的理解整理了一遍,发现之前不太明白的地方基本上想明白了,如有不正确的地方,欢迎指正,谢谢. ...

  5. 【Java基础】Java中的值传递、引用传递

    Java中的值传递.引用传递 对于一个方法而言,参数是为该方法提供信息的,而不是想让该方法改变自己.--<Java编程思想> 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本 ...

  6. 一个 js 中值传递和引用传递的坑。

    今天在调试代码时遇到一个问题,刚开始想不明白,然后分析了一下后,才知道其中的问题,这也是一个基础的问题,(所以基础是很重要的) 代码如下: var a = 3; a = a * 2; console. ...

  7. 一文彻底搞懂Java中的值传递和引用传递!

    关于Java中方法间的参数传递到底是怎样的.为什么很多人说Java只有值传递等问题,一直困惑着很多人,甚至我在面试的时候问过很多有丰富经验的开发者,他们也很难解释的很清楚. 我很久也写过一篇文章,我当 ...

  8. C#中 类和结构 值类型和引用类型以及 值传递和引用传递

    类: 概念就不赘述了. 结构: 1>它是从System.Object派生.但不能从别的类中派生,也不能从别的结构中继承. 2>它是一个值类型.呵呵. 3>里面还能写方法和字段, 如: ...

  9. 三分钟让你掌握JavaScript中值传递和引用传递的区别

    值传递:传递的是实际参数的一个副本.基本数据类型Undefined,Null,Boolean,Number.String都是值传递. 引用传递:传递的是实际参数的地址.引用数据类型Object,Arr ...

最新文章

  1. Http服务添加认证
  2. 怎么学python-如何系统的学习python?
  3. css 样式使用方法的累积
  4. MATLAB从入门到精通系列-非线性曲线拟合函数lsqcurve()详解
  5. C++ exception 类继承结构图
  6. 【小白成长撸】--二分查找
  7. android.intent.category.DEFAULT和LAUNCHER
  8. tar 解压_关于Ubuntu下解压tar.xz方法记录
  9. 面试中软性问题的套路与反套路
  10. cesium 圆形波动
  11. python在win10怎么搭建_Win10下Python环境搭建与配置教程
  12. 区块链 以太坊 虚拟机 opcode是什么
  13. (转载)计算机英语名词简释
  14. arduino定时器控制舵机_Arduino通过串口控制舵机角度
  15. 你认为3D建模是像程序员一样敲代码吗?你太out了
  16. 694.27公斤何登骥360搜索热头条 北方旱作国稻种芯功能水稻
  17. 认识linux内核结构
  18. mysql制作排行榜_mysql实现排行榜
  19. 单页面自动赚钱无敌策略
  20. window电脑C盘占用过大问题的几种解决方法

热门文章

  1. 疯狂的程序员-第六十七章
  2. 华为机考攻略(python)--字符串操作【9题】(第四题*HJ33整数与IP地址间的转换)
  3. 曾诗斯老师商务礼仪实战专家
  4. [转载] 百科全说——陈焕然:揭秘高科技美容(10-02-22)
  5. 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士
  6. 以开发之名|线上家装新美学——梦想之家,由你来定
  7. 这是一篇儿正儿八经的自我介绍~
  8. 英语老师自用省心天花板小程序
  9. 算法系列——寻找峰值 (Find Peak Element)
  10. github问题之Unable to retrieve your user info from the server