php函数的传值与传址有什么区别呢?对于这样的问题我喜欢通过程序演示来获取答案。让我们来看一个演示记录吧!
<?php $i=100; function func($n){ $n=$n+100; return $n; } echo '1)函数传值前变量$i的值:'.$i.'<br>'; echo '2)传值后函数的返回值:'.func($i).'<br>'; echo '3)函数传值后变量$i的值:'.$i.'<br>'; echo '4)函数传址前变量$i的值:'.$i.'<br>'; echo '5)传址后函数的返回值:'.func(&$i).'<br>'; echo '6)函数传址后变量$i的值:'.$i.'<br>'; //echo func($i).'<br>'; ?>
程序输出:
1)函数传值前变量$i的值:100
2)传值后函数的返回值:200
3)函数传值后变量$i的值:100
4)函数传址前变量$i的值:100
5)传址后函数的返回值:200
6)函数传址后变量$i的值:200
解释:
1)直接输出一个赋值$i=100的变量
2)func函数传值返回一个算术相加的结果$=100 100
3)func函数传值,其作用区域只限于函数内部,对外面的变量$i不会有影响
4)同上
5)func函数参数前多了个"&"符,表示传址,和2)一样,返回值是函数的算术运行结果。
6)func(&$i),变量指针指向$i的位置,可以理解为是对变量$i的操作,$i=$i 100;这时变量$i已经相当于重新被赋值
如果去掉上面代码的第18行注释,会得什么结果呢?
小结:传址为了在执行函数的同时,同时改变函数参数值,而传值不期望改变。
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
节省R.E.P.O.解释(并保存文件)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影 - 如何找到铁匠,解锁武器和装甲定制
4 周前ByDDD

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。