`
天梯梦
  • 浏览: 13731044 次
  • 性别: 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函数 -----函数的高级用法 课程内容 可变函数 引用函数返回值 函数的嵌套调用 函数的递归调用 回调函数 一、可变函数 一个变量的值可以为另一个变量的名称。此外,一个变量的值还可以是一个函数的名称,这就是...

    PHP常用符号和函数.docx

    - **变量符号**:`$`,用于标识变量。 - **引用符号**:`&`,用于表示变量的引用。 - **错误抑制**:`@`,用于抑制错误信息的输出。 - **对象成员访问**:`->`,用于访问对象的属性或方法。 - **数组元素值**:`=>`...

    PHP经典实例--函数

    然而,通过在参数前加"&"符号,可以实现按引用传递,使得函数内部的修改会影响到原始变量。同样,函数也可以返回引用,允许调用者直接修改被返回的变量。 3. **动态创建函数**:PHP支持在运行时动态定义函数,这...

    PHP经典实例--变量

    在处理复杂数据类型如数组时,可以使用`print_r()`或`var_dump()`函数来查看变量的结构和内容。 8. **变量命名规则**:变量名必须以字母或下划线开头,后面可以跟任何数量的字母、数字或下划线。变量名区分大小写,...

    php中的注释、变量、数组、常量、函数应用介绍

    下面详细介绍PHP中注释、变量、数组、常量和函数等基础知识。 首先,注释在PHP代码中用于解释代码的作用,以便开发者或其他人阅读代码时能更快理解。单行注释使用"//"开头,多行注释则用"/***/"包裹起来。PHP中的单...

    php的变量应用

    强制类型转换(例如`intval()`和`strval()`)可以确保变量的数据类型符合预期,而`isset()`和`empty()`函数则用于检查变量是否已设置和是否有值。 总的来说,PHP变量的应用贯穿于整个Web开发过程,从用户注册登录到...

    PHP变量引用(&)、函数引用和对象引用_.docx

    ### PHP中的变量引用、函数引用和对象引用解析 #### 变量引用 在PHP中,变量引用是指两个或多个变量共享同一内存空间的情况。当一个变量通过引用赋值给另一个变量时,它们实际上指向相同的内存位置,而不是进行值的...

    一步一步学习PHP(3) php 函数

    - PHP函数内部默认不能访问全局变量,除非使用`global`关键字。 - 考虑性能时,引用传递优于值传递,尤其是在处理大对象或字符串时。 - 使用`isset()`检测变量是否定义,`unset()`取消变量定义。

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

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

    去来php教程之变量也运算符

    【PHP变量和运算符教程】 在PHP编程语言中,变量是存储数据的容器,而运算符则是用于操作这些数据的符号。本教程将深入讲解PHP中的变量和运算符,帮助初学者更好地理解和运用这两个关键概念。 ### PHP变量 1. **...

    php圣经 php bible

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

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

    在PHP中,引用符号(&)是一个非常有用的工具,它允许我们创建变量、函数或对象的别名。这意味着不同的名称可以访问同一块数据。这样的特性在编程时可以让我们更加灵活地操作数据,同时可以节省内存空间,尤其在处理...

    PHP函数的应用详解.pdf

    PHP函数是编程语言PHP中的核心概念,用于组织代码和实现特定功能。函数具有以下几个关键特点: 1. **命名唯一**:每个函数都有一个独特的名称,通过这个名称可以在代码的任何地方调用它。 2. **独立性**:函数能够...

    PHP获取当前url路径的函数及服务器变量QUERY_STRING、REQUEST_URI

    ### PHP 获取当前URL路径的函数及服务器变量:QUERY_STRING、REQUEST_URI、SCRIPT_NAME、PHP_SELF 在PHP开发中,理解并正确使用服务器变量是至关重要的。这些变量可以帮助开发者获取当前请求的各种信息,例如请求的...

    PHP中文教程:PHP面向对象语法(构造函数、析构函数、引用)

    引用传递在函数参数中也有应用,如果函数参数使用`&`声明,那么函数内部对参数的修改会影响到外部变量的值。例如: ```php function changeValue(&$value) { $value = 30; } $c = 15; changeValue($c); // 现在 c...

    PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)

    全局变量在PHP函数中的使用需要注意。如果在函数内部需要访问或修改全局变量,必须使用`global`关键字来声明。例如,在`Demo8.php`中,函数`fa()`修改了全局变量`$a`的值,从5变为了2。如果不使用`global`关键字,则...

    PHP第三节变量介绍_.docx

    引用赋值通过在变量前加上&符号实现,但只能对已命名的变量进行引用赋值,不能对表达式进行引用。 虽然PHP不需要显式初始化变量,但建议对变量进行初始化。未初始化的变量会有其类型的默认值,如布尔类型默认为...

Global site tag (gtag.js) - Google Analytics