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

 更新时间:2014年07月08日 10:08:32   投稿:junjie  
这篇文章主要介绍了php中的函数前加&符号的作用分解,其作用叫做引用返回,有点抽象,详细解释请看本文内容,需要的朋友可以参考下

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

function &chhua() 
{ 
static $b="www.jb51.net";//申明一个静态变量 
$b=$b."WEB开发"; 
echo $b; 
return $b; 
} 
 
$a=chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发” 
$a="PHP"; 
echo "<Br>";
$a=chhua();//这条语 句会输出 $b的值 为“www.jb51.netWEB开发WEB开发”  
echo "<Br>";
$a=&chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发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定义一个数组最简单的方法

    用php定义一个数组最简单的方法

    这篇文章主要介绍了用php定义一个数组最简单的方法,以及相关实例代码,需要的朋友们学习下。
    2019-10-10
  • PHP数组排序函数sort()、asort()和ksort()的用法和区别

    PHP数组排序函数sort()、asort()和ksort()的用法和区别

    在 PHP 中,sort()、asort() 和 ksort() 是三个常用的数组排序函数,它们分别适用于不同的排序需求和场景,本文将分别介绍这三个函数的用法和区别,并举例说明它们的具体应用,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2023-11-11
  • mac os快速切换多个PHP版本的方法

    mac os快速切换多个PHP版本的方法

    本文给大家汇总了四种在mac os下实现快速切换多个php版本的方法,非常简单实用,有需要的小伙伴可以参考下
    2017-03-03
  • Yii 2.0中场景的使用教程

    Yii 2.0中场景的使用教程

    这篇文章主要给大家介绍了关于Yii 2.0中场景使用的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • php实现图片上传时添加文字和图片水印技巧

    php实现图片上传时添加文字和图片水印技巧

    这篇文章主要为大家详细介绍了php实现图片上传时添加文字和图片水印技巧,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤

    用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤

    作为一名非专业的PHP开发者,想要较方便地读懂并搞清楚一个PHP功能模块的运行细节,搭建一个PHP调试环境,然后单步调试程序,以掌握程序的整个运行过程显的尤为重要
    2014-01-01
  • PHP记录页面停留时间的方法

    PHP记录页面停留时间的方法

    这篇文章主要介绍了PHP记录页面停留时间的方法,涉及PHP结合js针对文件与时间的相关操作技巧,需要的朋友可以参考下
    2016-03-03
  • goto语法在PHP中的使用教程

    goto语法在PHP中的使用教程

    这篇文章主要给大家介绍了关于goto语法在PHP中的使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • PHP缓存技术的使用说明

    PHP缓存技术的使用说明

    PHP缓存技术的应用时相当普遍的,也许有些人还对这项技术不太了解,我们现在就为大家详细的介绍一下PHP缓存技术的相关应用技巧。
    2011-08-08
  • php 带逗号千位符数字的处理方法

    php 带逗号千位符数字的处理方法

    php 带逗号千位符数字的处理方法,需要的朋友可以参考下。
    2012-01-01

最新评论