`
天梯梦
  • 浏览: 13639116 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

php函数前面加&符号 和 变量前面加&符号的意义

PHP 
阅读更多

php函数前面加&符号的意思是函数的引用返回,php函数前面加&符号有什么作用呢

 

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函数前面加&符号有什么作用呢

 

function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}

$a=&test();//这条语句会输出 $b的值 为1
$a=6;
test();//这条语句会输出$b的值 为7
 


php变量前面加&符号是什么意思

 

 

先看一个示例

 

$foo = 321;
$bar = &$foo; 
$bar = 123;
print $foo;

那么输出的结果将会是什么呢

 

123  
 

为什么会这样呢?

改动新的变量将影响到原始变量,这种赋值操作更加快速

 

注意:只有命名变量才可以传地址赋值

就是说,改变了$bar的值,也就改变了$foo的值了

 

 

 

 

 

分享到:
评论

相关推荐

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

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

    PHP函数 -函数的高级用法.ppt

    * PHP函数 -----函数的高级用法 课程内容 可变函数 引用函数返回值 函数的嵌套调用 函数的递归调用 回调函数 一、可变函数 一个变量的值可以为另一个变量的名称。此外,一个变量的值还可以是一个函数的名称,这就是...

    BUUCTF-Web-Mark loves cat变量函数覆盖

    php代码审计之变量覆盖漏洞 变量覆盖漏洞 自定义的参数值替换原有变量值的情况称为变量覆盖漏洞 ...PHP extract()函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量值

    php中引用&的用法分析【变量引用,函数引用,对象引用】

    php的引用(就是在变量或者函数、对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 变量的引用 PHP 的引用...

    php中引用符号(&)的使用详细介绍

    php的引用就是在变量或者函数、对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用,需要的朋友可以参考下

    php圣经 php bible

    变量处理函数库 Vmailmgr 邮件处理函数库 WDDX 函数库 压缩文件函数库 XML 解析函数库 Session 函数库 GNU 记录函数库 FTP 文件传输函数库 MCAL 模块日历存取函数库 第五章 范例程序 访客计数器 用户认证...

    PHP bible(PHP圣经)中文版

    变量处理函数库 Vmailmgr 邮件处理函数库 WDDX 函数库 压缩文件函数库 XML 解析函数库 Session 函数库 GNU 记录函数库 FTP 文件传输函数库 MCAL 模块日历存取函数库 第五章 范例程序 访客计数器 用户认证...

    php中引用符号(&)的使用详解

    php的引用就是在变量或者函数、对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用

    PHP bible(PHP圣经).CHM

    变量处理函数库 Vmailmgr 邮件处理函数库 WDDX 函数库 压缩文件函数库 XML 解析函数库 Session 函数库 GNU 记录函数库 FTP 文件传输函数库 MCAL 模块日历存取函数库 第五章 范例程序 访客计数器 用户认证...

    史上最全PHP5基础精讲教程

    9个实用的PHP函数.doc Output Control输出函数.doc PHP5.3的重要特性 命名空间.doc PHP5文件的操作(PHP100精华).txt php中构造函数和析构函数.txt PHP创建和使用session cookie变量.txt PHP基础教程-推荐.doc PHP...

    PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例

    本文实例讲述了PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能。分享给大家供大家参考,具体如下: 这里模拟tp框架模板变量分配与赋值操作。 extract($arr); //extract 的作用:从数组...

    经典php入门学习提纲

    php函数主要是掌握函数调用,函数的定义,函数的参数问题,以及在函数中变量的作用域等问题,php的函数使用也是非 常灵活的,比如不用显示说明函数的返回值类型, 所以在函数中可以根据不同情况返回不同类型的值,...

    PHP变量

    变量以 $ 符号开始,后面跟着变量的名称 变量名必须以字母或者下划线字符开始 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ ) 变量名不能包含空格 变量名是区分大小写的 PHP 语句和 PHP 变量都是区分大小...

    php的快速入门小高手

    这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 include(...

    php 数组处理函数extract详解及实例代码

    检查每个键名看是否可以作为一个合法的变量名,同时也检查和符号表中已有的变量名的冲突。 参数介绍: 参数 描述 var_array 必需。规定要使用的数组。 一个关联数组。此函数会将键名当作变量名,值作为变量的值...

    PHP之sprintf函数用法详解

    PHP函数 sprintf() 函数官方定义为:sprintf():把格式化的字符串写入一个变量中 语法为:sprintf(format,arg1,arg2,arg++); 参数: format:必须,转换格式 arg1 :必须,规定插入 format 字符串中第一个%符号处的参数 ...

    php compact 通过变量创建数组

    compact函数通过一个或多个变量建立一个数组,改数组包括变量名和它们的值。 该函数的行为与extract()正好相反。 基本语法 array compact ( mixed $varname [, mixed $… ] ) 创建一个包含变量与其值的数组。 对每...

    php 引用(&)详解

    php的引用(就是在变量或者函数、对象等前面加上&符号)

    PHP中extract()函数的定义和用法

    定义和用法 PHP extract() 函数从数组中把变量导入到当前的符号表中。 对于数组中的每个元素,键名用于变量名,键值用于变量值。 第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() ...

Global site tag (gtag.js) - Google Analytics