如何深入理解php中的值传递和引用传递
对于值传递和引用传递,书本上的解释比较繁琐,而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中的值传递和引用传递相关推荐
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- Java中的值传递和引用传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为 ...
- Java中传参数--值传递和引用传递
** Java中传参数–值传递和引用传递 ** 在Java中,传参数分为值传递和引用传递. 在Java中的数据类型分为两大类:一类是引用类型,也叫类类型(除了String以外的所有复合数据类型,包括数 ...
- java中的值传递和引用传递问题
值传递与引用传递 最近学基础的时候,老师讲了值传递和引用传递,这个问题一直不太明白,上网查了很多资料,按照自己的理解整理了一遍,发现之前不太明白的地方基本上想明白了,如有不正确的地方,欢迎指正,谢谢. ...
- 【Java基础】Java中的值传递、引用传递
Java中的值传递.引用传递 对于一个方法而言,参数是为该方法提供信息的,而不是想让该方法改变自己.--<Java编程思想> 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本 ...
- 一个 js 中值传递和引用传递的坑。
今天在调试代码时遇到一个问题,刚开始想不明白,然后分析了一下后,才知道其中的问题,这也是一个基础的问题,(所以基础是很重要的) 代码如下: var a = 3; a = a * 2; console. ...
- 一文彻底搞懂Java中的值传递和引用传递!
关于Java中方法间的参数传递到底是怎样的.为什么很多人说Java只有值传递等问题,一直困惑着很多人,甚至我在面试的时候问过很多有丰富经验的开发者,他们也很难解释的很清楚. 我很久也写过一篇文章,我当 ...
- C#中 类和结构 值类型和引用类型以及 值传递和引用传递
类: 概念就不赘述了. 结构: 1>它是从System.Object派生.但不能从别的类中派生,也不能从别的结构中继承. 2>它是一个值类型.呵呵. 3>里面还能写方法和字段, 如: ...
- 三分钟让你掌握JavaScript中值传递和引用传递的区别
值传递:传递的是实际参数的一个副本.基本数据类型Undefined,Null,Boolean,Number.String都是值传递. 引用传递:传递的是实际参数的地址.引用数据类型Object,Arr ...
最新文章
- Http服务添加认证
- 怎么学python-如何系统的学习python?
- css 样式使用方法的累积
- MATLAB从入门到精通系列-非线性曲线拟合函数lsqcurve()详解
- C++ exception 类继承结构图
- 【小白成长撸】--二分查找
- android.intent.category.DEFAULT和LAUNCHER
- tar 解压_关于Ubuntu下解压tar.xz方法记录
- 面试中软性问题的套路与反套路
- cesium 圆形波动
- python在win10怎么搭建_Win10下Python环境搭建与配置教程
- 区块链 以太坊 虚拟机 opcode是什么
- (转载)计算机英语名词简释
- arduino定时器控制舵机_Arduino通过串口控制舵机角度
- 你认为3D建模是像程序员一样敲代码吗?你太out了
- 694.27公斤何登骥360搜索热头条 北方旱作国稻种芯功能水稻
- 认识linux内核结构
- mysql制作排行榜_mysql实现排行榜
- 单页面自动赚钱无敌策略
- window电脑C盘占用过大问题的几种解决方法
热门文章
- 疯狂的程序员-第六十七章
- 华为机考攻略(python)--字符串操作【9题】(第四题*HJ33整数与IP地址间的转换)
- 曾诗斯老师商务礼仪实战专家
- [转载] 百科全说——陈焕然:揭秘高科技美容(10-02-22)
- 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士
- 以开发之名|线上家装新美学——梦想之家,由你来定
- 这是一篇儿正儿八经的自我介绍~
- 英语老师自用省心天花板小程序
- 算法系列——寻找峰值 (Find Peak Element)
- github问题之Unable to retrieve your user info from the server