PHP传值、引用和传址的区别

PHP引用(&)使用详解 php的引用(就是在变量或者函数、对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容。 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容,在内存中存放的地址。 1.变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 <?php $a="ABC"; $b =&$a; echo $a;//这里输... 阅读详情

实参(被调)、行参(主调)

函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。 

--传值:

是把实参的值赋值给行参,相当于复制一块同样的空间
那么对行参的修改,不会影响实参的值
 

--传地址:
是传值的一种特殊方式,只是他传递的是地址,不是普通的如int
那么传地址以后,实参和行参都指向同一个对象

--传引用:
真正的以地址的方式传递参数
传递以后,行参和实参都是同一个对象,只是他们名字不同而已
对行参的修改将影响实参的值
即传址时只需在函数调用时在参数的前面加上"&"号即可。将函数外部的值的内存地址传递给内部的参数,在函数内部的所有操作都会改变函数外部参数的值。



值传递(passl-by-value):     压栈的是参数的副本。任何的修改是在副本上作用,没有作用在原来的变量上。

过程中:被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
 

传指针(pointer):                压栈的是指针变量的副本。当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
 

引用传递(pass-by-reference):压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。

过程中:被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。


所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。
所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。如果对目标对象进行修改,内存中的数据也会改变。

SWD下载调试接口原理深度剖析 作为ARM嵌入式工程师,下载调试器都应该知道,但你真正了解SWD如何下载调试的么?ARM 芯片通过什么物理接口和什么方式连接完全取决于芯片Debug子系统的架构如何? 阅读详情

相关推荐

`全网最细!! 入门必看Git教程链接:https://gitee.com/all-about-git`

全网 Git 入门教程 gitee.com。如果显示The requested URL returned error: 403错误,那就表示没有和window本地建立token令牌

qq_37855368的博客 3748

C语言中函数调用中的传值与传址

首先介绍一下函数中传值与传址的概念: 传值:传值,实际是把实参的值赋值给行参,相当于copy。那么对行参的修改,不会影响实参的值 。 传址: 实际是传值的一种特殊方式,只是他传递的是地址,不是普通的赋值,那么传地址以后,实参和行参都指向同一个对象,因此对形参的修改会影响到实参。 用两个例子来说明: 先看看这个代码 #include void swap(int n1,int n2) {

ljx_5489464的博客 1万+

保姆级教程:用Jetson Orin Nano和ROS2 Humble搞定PIXhawk 4飞控通信(含配置文件详解)

本文提供了一份详细的Jetson Orin Nano与PIXhawk 4飞控通信配置指南,涵盖硬件连接、ROS2 Humble环境搭建、MAVROS2配置及通信调试全流程。通过实战案例和配置文件详解,帮助开发者快速实现无人机上位机与飞控的稳定通信,适用于无人机开发与自动化控制场景。

weixin_33670786的博客 475

传值和传址的区别

之前对于参数的传值和传址一直不大明白,大概的意思知道,那么他们两个有什么区别,还有就是具体是怎样的参数传递还是不太懂。所以就上网搜了一些关于传值和传址的讲解。       先来简单说一下 传值:把A的数值传到B,改变B,A不会跟着变,B存的是跟A一样的值; 传址:把A的地址传到B,改变B,A同时跟着变,B存的只是A的地址(类似电脑的快捷方式)。       不知道你们对于第二个传址的解释有

张旭 廊坊师范学院信息技术提高班 十二期 5712

【AI智能体】图像处理-生成营销 Banner 图

生成营销 Banner 图是一款用于制作营销图片的智能体,它可以根据指定的营销活动内容,快速生成活动 Banner 图片,降低活动运营成本、提高制图效率。

AI创变工坊,和1000万新个体创业者一起成长!愿大家都能跟上时代的洪流,不被社会淘汰,愿大家的生活工作收入都能具备竞争力! 1175

手把手写深度学习(27):如果获得相机位姿态的plücker embedding?以RealEstate10K为例

用plücker embedding表示相机的位姿是一种非常常用的方法,这篇博客以RealEstate10K数据集为例子,详细讲解如何从相机的轨迹坐标中获得plücker embedding,用于下一步模型的学习。

沉迷单车的追风少年 2239

理解C++传值、传址、引用调用

使用C++很长时间,对一些最基本的知识点不求甚解,有时会犯很低级的错误,并且这些bug在调试中很难发现。以前只了解传值、传址、引用调用的区别,没有深入了解,今天稍微总结一下,今后慢慢深入。 1.传值调用 在传值调用时,实参被拷贝了一份,然后在函数体内使用,函数体内修改参数变量时修改的只是实参的一份拷贝,而实参本身没有改变。通过例子来看,代码运行结果: void funcValue(int ...

u012507022的博客 3506

47、利用组策略配置 Windows 防火墙与 IPsec 全解析

本文深入解析了如何利用组策略配置Windows防火墙与IPsec,涵盖防火墙规则基础、IPsec身份验证与加密机制、服务器和域隔离实现方法、WFAS中新旧IPsec规则的区别与配置流程,并详细说明了防火墙属性与规则的优先级计算方式。同时介绍了证书服务、EFS等未详述的安全功能及相关学习资源,帮助管理员通过组策略有效提升网络安全性。

onion的博客 101

传地址调用和传引用调用的区别

传地址调用和传引用调用的区别相同点: 传引用和传地址,原理上都是将参数变量的地址传递给被调函数。所以在函数内部修改参数的值时,均可返回修改之后的结果给调用者。 不同点: 引用一定会指向一个对象,而指针可能为空(NULL); 传引用时,系统对传过来的参数不会有任何额外开销,直接使用原始变量的内存空间。 传引用时,函数参数需要写做T&a; 调用函数时直接传递对象本身;在函数内赋值的时候,直接对a赋值即可

star_yang的博客 6888

AMD KFD的SDMA Packet 类型和定义解析

本文详细分析了AMD GPU架构中的SDMA(System Direct Memory Access)数据传输机制,重点介绍了其核心数据结构——SDMA Packet。SDMA通过8种主要Packet类型(包括内存拷贝、数据写入、屏障同步、中断触发等)实现高效主机-设备通信。每种Packet采用位域结构和联合体封装设计,在保证功能完整性的同时实现空间优化。这些Packet支持丰富的访问属性和扩展字段,适用于高性能数据搬运、内存初始化、任务同步、性能分析等场景,为GPU计算提供了灵活高效的数据传输解决方案。

图形/计算GPU的驱动与虚拟化技术分享园地 1250

python批量调用大模型API:多线程和异步协程

本文介绍了利用多线程技术批量调用大模型API的实现方法。核心是通过并发请求提高处理效率,主要采用线程池管理并发数量、结果聚合等技术。文章提供了一个完整的Python实现示例,包含APIBatchCaller类及其single_api_call和batch_call方法,详细解析了并发控制、错误处理等关键点,并给出了使用注意事项,包括并发数设置、重试策略和超时处理等。该方案特别适合IO密集型任务,能显著提升批量API调用的效率。

Cachel Wood的博客 759

PHP 中传值与传引用的区别

在 PHP 中,理解传值与传引用的区别对于编写高效、可维护的代码至关重要。

sheji888的专栏 1622

仿真学习系列(四十九):Sigrity仿真之电容库制作

在高速电路设计中,电源完整性(PI)是确保系统稳定、可靠运行的关键因素。随着电子产品对性能的要求不断提升,PDN(电源分配网络)的设计与优化变得尤为重要。为了确保电源网络在高速工作状态下不会引发电压波动和信号干扰,我们需要在设计中精确地选择电容器进行优化,而电容库的制作则是这一过程的核心。 OptimizePI作为一个强大的电源完整性优化工具,能够帮助设计师根据不同的目标,批量进行PDN仿真,以得出最佳电容选择。

案例文章,高速信号 223

php传值与传址的区别

  PHP中传值和传址的区别, 十分的简单, 看字面的意思大概就知道是什么意思了, 下面通过简单的实例看一下两者的区别. 1 $a = 5; 2 function show(&$b) { 3 $b += 10; 4 echo "函数内部:" . $b . "<hr>";//结果: 15 5 } 6 show($a); 7 echo "函数外部:...

weixin_33894640的博客 226

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

php的变量、传值、传址、销毁变量

    在php中,php的语句需要以**;**结尾,而且变量区分大小写,但关键字不区分大小写 1、变量的命名规则 变量必须以$开头,比如$name,$不是变量名的一部分,仅表示变量名的开始 除了$以外,以字母、下划线开头,后面跟的是字母、数字、下划线 2、传值 <?php $num1=12; $num2=$num1; $num1++; e...

qq_41683305的博客 259

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

php中传址调用,PHP中foreach引用传地址

本文主要和大家分享PHP中foreach引用传地址,搞明白这个问题 需要三点知识,希望能帮助到大家。1 php的普通赋值和引用赋值变量名存储在内存栈中,它是指向堆中具体内存的地址,通过变量名查找堆中的内存;普通传值,传值以后,是不同的地址名称,指向不同的内存实体;引用传值,传引用后,是不同的地址名称,但都指向同一个内存实体;改变其中一个,另外一个就也被改变;大概就是这个关系吧 具体可以看看这...

weixin_33711795的博客 257

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

php c com传址,php 传址

在php 中引用的意思是:不同的名字访问同一个变量内容.变量的引用PHP的引用允许你用两个变量来指向同一个内容例一:$a="2010";$b =&$a;echo $a;//这里输出:2010echo $b;//这里输出:2010$b="2012";echo $a;//这里$a的值变为2012 所以输出echo $b;//这里输出2012?>例二:$a = "date";$b = &...

weixin_32521765的博客 163

php赋值传值和引用传址 数组基础 函数基础

do while循环 while循环,先判断条件是否成立,再决定是否执行循环体代码,如果第一次条件为false,while循环一次都不执行; do while循环,先执行一次循环体代码,再判断条件是否满足;如果第一次条件为false,循环体代码执行一次; 变量初始化; do{        循环体代码;        变量更新; }while(条件表达式);     for循环

Carlos__z的专栏 3273

php三天基础笔记(6)变量的传值赋值和引用赋值 (7)变量销毁 (动态变量名)

传值引用和传址引用  传值引用修改一个变量不会对另一个变量产生影响 传址一用修改一个变量跟他同一地址的变量全部都会修改 。传址引用在变量前加& $a=&$b; ---------------------------------------------------------------------------------------------------------------------

爱芳 451

[javaSE] 变量的传值与传址

变量:就是将不确定的数据进行存储。也就是需要在内存中开辟一个空间 这个空间需要一个名称,这个名称就是变量名 基本数据类型:byte,short,int,long,double,float,char,boolean 引用数据类型:类(Class),接口(interface),集合 传值就是把这个变量复制一份 传址就是还是同一个对象 基本数据类型一般都是传值,引用数据...

程序员老狼专注开发aigc或客服系统应用 118

php传值调用和传值调用和变量函数

php传值调用和传值调用和变量函数 代码 1 <?php 2 3 //传值调用,$m的值不改变 4 function text($i){ 5 $i = 'Clive'; 6 echo $i; 7 8 } 9 text(123); 10 echo '<hr/>'; 11 $m = 123; 12 text($m);...

weixin_33724059的博客 101

CodeIgniter-&引发关于变量引用的思考

CodeIgniter是一个单例模式框架,源代码中大量使用‘&’引用,有两种原因:一方面基于兼容PHP4版本;另一方面是为了防止变量发生”写时复制”(copy on write)。借此机会,简单地介绍“PHP变量引用”原理。PHP源码使用zval结构定义变量:typedef struct _zval_struct zval; struct _zval_struct { zvalue_valu

coding.... 618

php变量和常量

1.拷贝传值和引用传址定义:$a = $b  将值复制一份赋予$a$a = $b 将内存地址传递给$a2.引用变量定义:不同的变量指向相同的内存使用:同引用传址3.写时复制拷贝传值时, $a不会立即开辟一块空间 , 而是在指向的内存发生变化时才复制可使用memory_get_useage查看内存使用来验证4.对象的传递对象默认使用引用的方式传递, 复制需要使用clone()函数5.unset()的...

why2142250的博客 337

解析PHP中 传值、传引用、传地址之区别

源自:http://www.wei-bolg.com/?p=152   PHP传值和传引用、传地址的区别: 传值: 是把实参的值赋值给行参,相当于复制一块同样的空间 那么对行参的修改,不会影响实参的值       function aa($i){           $i++;       }       //按值方式        $m=2;        

深夜无眠的专栏 1184

PHP传值和传引用、传地址的区别

PHP传值和传引用、传地址的区别 PHP传值和传引用、传地址的区别是什么? 传值: 是把实参的值赋值给形参,那么对形参的修改,不会影响实参的值 传地址: 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和形参都指向同一个对象 传引用: 真正的以地址的方式传递参数 传递以后,形参和实参都是同一个对象,只是他们名字不同而已 对形参的修改将影响实参的值  ...

PHPArchitect的博客 626
上一篇: 应该知道的Linux操作技巧
下一篇: Java的23种设计模式
damys
博客等级 码龄17年 356粉丝 524原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值