php中函数前加&符号的作用分解


Posted in PHP onJuly 08, 2014

php变量前面加&符号是什么意思就不用多说了,大家都在用,就是两个变量同时指向一个地址而已,那么,php函数前面加&符号的意义又是什么呢?下面先上两个演示代码,然后再做解释。

function &chhua() 
{ 
static $b="3water.com";//申明一个静态变量 
$b=$b."WEB开发"; 
echo $b; 
return $b; 
} 
 
$a=chhua();//这条语句会输出 $b的值 为“3water.comWEB开发” 
$a="PHP"; 
echo "<Br>";
$a=chhua();//这条语 句会输出 $b的值 为“3water.comWEB开发WEB开发”  
echo "<Br>";
$a=&chhua();//这条语句会输出 $b的值 为“3water.comWEB开发WEB开发WEB开发” 
echo "<Br>";
$a="JS"; 
$a=chhua(); //这条语句会输出 $b的值 为"JSWEB开发"
 
 
function &test()
{
	static $b=0;//申明一个静态变量
	$b=$b+1;
	echo $b;
	return $b;
}
 
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这 条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test(); //这条语句会输出 $b的值 为6

下面就来解释一下第二个函数吧。
通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数 调用没有区别.

至于原因: 这是PHP的规定
php规定通过$a=&test(); 方式得到的才是函数的引用返回.

至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。)

用上面的例子来解释就是
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改 变 都不会影响到函数中的$b.
而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
指向了同一个地方. 即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b 的值 ,所以在执行了:
$a=&test(); $a=5; 以后,$b的值变为了5。

PHP 相关文章推荐
ThinkPHP之import方法实例详解
Jun 20 PHP
php查看当前Session的ID实例
Mar 16 PHP
php获取远程文件的内容和大小
Nov 03 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
PHP实现支持加盐的图片加密解密
Sep 09 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
PHP基本语法
Mar 31 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 #PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 #PHP
PHP的魔术常量__METHOD__简介
Jul 08 #PHP
PHP中的插件机制原理和实例
Jul 08 #PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 #PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 #PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 #PHP
You might like
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
如何搜索查找并解决Django相关的问题
2014/06/30 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
python集合用法实例分析
2015/05/30 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
自考毕业自我鉴定范文
2013/10/27 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
中国入世承诺
2014/04/01 职场文书
租赁协议书范本
2014/04/22 职场文书
促销活动总结怎么写
2014/06/25 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
校长个人总结
2015/03/03 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
消防宣传标语大全
2015/08/03 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript