对于值传递和引用传递,书本上的解释比较繁琐,而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. 省钱之道--图解域域树域林根域的含义
  2. EasyRTMP手机直播推送rtmp流flash无法正常播放问题
  3. github的webhooks无法刷新config服务端的bus-refresh接口
  4. 调用函数,判断各位数字立方和是否等于它本身
  5. P4316 绿豆蛙的归宿 期望dp + DAG
  6. android 系统(162)---O版本的Camera Startup time比N版本时间长
  7. android 自定义字体_Android自定义字体教程
  8. 智能优化算法——蝙蝠算法(PythonMatlab实现)
  9. 安卓10刷Magisk并安装JustTrustMe
  10. DID; PSM; DID-PSM
  11. mac外接键盘HOME,END键问题
  12. 驭龙HIDS的简介,它开源了
  13. 研究生毕业论文如何选题
  14. SAT数学考试需要准备的物品
  15. 计算机组装大赛初赛成功举办,不忘初心学本领,不负众望展技能|五冶龙泉校区第一届计算机组装比赛圆满落幕...
  16. 河海大学计算机考研算法题,河海大学考研真题各专业汇总
  17. 江苏灵匠php_江苏灵匠信息科技有限公司
  18. C语言中0UL和1UL表示什么意思?
  19. AS将module变为library遇到的问题
  20. 招行就是有前途——行长马蔚华年薪居各行之首

热门文章

  1. UNICODE、GB18030、ASCII编码
  2. 学生信息管理系统学籍信息管理
  3. 如何通过阅读改变思维方式
  4. 基于C语言的个人所得税计税系统
  5. mysql中的/、div的区别
  6. 游戏经典题目之十字激光炮
  7. 服装导购个人简历模板范文--带详细内容
  8. 外贸邮箱,公司邮箱都什么格式?公司邮箱如何管理?
  9. 移动端+京东移动端首页制作
  10. android 如何关闭app,android 关闭app程序