php引用传递


Posted in PHP onApril 01, 2021

引用传递:将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址
注:在函数调用时没有引用符号——只有函数定义中有。

主要是实参和形参的相互影响性。引用传递:形参的改变会影响实参 , 值传递:赋值,不相互影响 。 按照按值传递的做法来传值时,如果需要原来的值发生改变,则需要在进行代码复制,若是值够大或者是一大串字符串时,会使代码比较多,重复,而引用传递则不需要复制PHP代码,对提高性能这一个方面有很大的优势。

function adduce(&$string) // 引入变量,使用同一个存储地址
	{
	    $string .= '我是引用传递.';
	    echo $string;// 输出 '我是外部字符串, 我是引用传递.'
	}
	
	$str = '我是外部字符串, ';
	adduce($str);
	echo $str;    // 输出 '我是外部字符串, 我是引用传递.'
  • $str输出:
    • 我是外部字符串, 我是引用传递.
  • $string输出:
    • 我是外部字符串, 我是引用传递.

以上示例证明 $str更改了地址。新地址与 $string 共用同一值

如果没有这个&符号,请看示例

function adduce2($string)
	{
	    $string .= '内部字符串.';
	    echo $string;// 输出 '我是外部字符串, 我是引用传递.'
	}
	
	$str = '外部字符串, ';
	adduce2($str);
	echo $str;    // 输出 '外部字符串, '
  • $str输出:
    • 外部字符串,
  • $string输出:
    • 我是外部字符串, 我是引用传递.

以上示例证明 $str内容不变。与 $string 互不影响

函数的引用传递

//示例1
	$a = 1;
	function &func(&$a) {
	  return $a;
	}
	$b = func($a);	// 这里不是函数引用传递
	$b = 2;
	echo "a: $a, b: $b, c: $c. <br />";//输出a: 1, b: 2, c: 1.   可见对$b的修改不会影响$a
-----------------------------------------------------------------------------------------------------------------------------------
	//示例2
	$a = 1;
	function &adduce(&$a) {
	    return $a;
	}
	$c = &adduce($a);	// 这是函数引用传递,$c和$a引用同一个值
	$c = 3;
	echo "a: $a, b: $b, c: $c. <br />";//输出a: 3, b: 2, c: 3.   可见对$c的修改会影响$a
PHP 相关文章推荐
一周学会PHP(视频)Http下载
Dec 12 PHP
PHP与SQL注入攻击[三]
Apr 17 PHP
PHP 手机归属地查询 api
Feb 08 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 #PHP
PHP判断是否是json字符串
Apr 01 #PHP
php TP5框架生成二维码链接
Apr 01 #PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 #PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 #PHP
PHP控制循环操作的时间
Apr 01 #PHP
php字符串倒叙
Apr 01 #PHP
You might like
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
javascript计时器详解
2015/02/28 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
Python脚本实现网卡流量监控
2015/02/14 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
pandas中Timestamp类用法详解
2017/12/11 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
高中校园广播稿
2014/01/11 职场文书
2014年创卫实施方案
2014/02/18 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
先进教师个人总结
2015/02/11 职场文书
教学督导岗位职责
2015/04/10 职场文书
2015年环保局工作总结
2015/05/22 职场文书
单位政审意见范文
2015/06/04 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android