定义函数时前面加个号代表什么?
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-28 13:51:07 浏览: 评论:0
定义函数时前面加个&号代表什么?
这是论坛的E蜗牛童鞋的帖子里看到的,准确的说明了函数前面加个&的作用,以及具体的效果.
函数的引用返回先看代码:
- 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的值,所以在执行了如下代码:以后,$b的值变为了5
- $a=&test();
- $a=5;
Tags: 定义 函数 前面
- 上一篇:adodb的事务处理咋没效果
- 下一篇:关于PHP生成静态页面详细讲解
相关文章
- ·当在连接PHP时,抱怨一些数值没有定义参考?(2013-11-27)
- ·php define常量定义与变量区别(2013-11-29)
- ·PHP预定义变量(2014-01-14)
- ·PHP Global变量定义一些用法详解(2014-01-17)
- ·PHP中变量和变量定义(2014-03-27)
- ·php 定义404页面方法(2014-05-30)
- ·PHP Global定义全局变量使用说明(2014-07-17)
- ·PHP 中变量 常量的定义与用法(2014-08-02)
- ·sscanf定义和用法及分析(2014-09-18)
- ·深入分析php中const和define定义常量的区别(2015-04-09)
- ·PHP变量详解和定义变量名的方法(2016-08-24)
- ·PHP基础之预定义变量(2021-01-02)
- ·PHP中使用json数据格式定义字面量对象的方法(2021-04-06)
- ·php自定义apk安装包实例(2021-04-17)
- ·php自定义加密与解密程序实例(2021-05-05)
- ·浅谈php自定义错误日志(2021-05-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)