PHP 中引用 - 引用传递

原创 2005年05月26日 01:47:00

引用传递

你可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。语法如下:

<?php
function foo (&$var)
{
    
$var++;
}

$a=5;
foo ($a);
// $a is 6 here
?>

注意在函数调用时没有引用符号 - 只有函数定义中有。光是函数定义就足够使参数通过引用来正确传递了。

以下内容可以通过引用传递:

  • 变量,例如 foo($a)

  • New 语句,例如 foo(new foobar())

  • 从函数中返回的引用,例如:

    <?php
    function &bar()
    {
        
    $a = 5;
        return
    $a;
    }
    foo(bar());
    ?>

    详细解释见引用返回

任何其它表达式都不能通过引用传递,结果未定义。例如下面引用传递的例子是无效的:

<?php
function bar() // Note the missing &
{
    
$a = 5;
    return
$a;
}
foo(bar());

foo($a = 5) // 表达式,不是变量
foo(5) // 常量,不是变量
?>

这些条件是 PHP 4.0.4 以及以后版本有的。

php 引用传递、引用返回和取消引用以及unset

在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是引用是符号表别名。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。 ...
  • dizzthxl
  • dizzthxl
  • 2012年07月19日 15:16
  • 1767

php利用数组来进行引用传递

今天学到一招,php中可以用数组来直接进行引用传递代买如下
  • aarontong00
  • aarontong00
  • 2016年12月26日 12:58
  • 1076

PHP中对象是按值传递还是按引用传递?

1.首先,什么是值传递和引用传递? 按值传递就是仅仅把值传递过去,相当于传递的是值的拷贝,而引用传递传递的是内存的地址。 按引用传递的特点: $a = 2; $b = &$a; //按引用传递...
  • STFPHP
  • STFPHP
  • 2016年08月05日 20:25
  • 3993

你真的理解Java的按引用传递吗?

首先我们来看下面这段代码:public class Test1 { String a = "123"; public static void change(Test1 test) ...
  • cauchyweierstrass
  • cauchyweierstrass
  • 2015年11月02日 10:42
  • 7736

JS 中没有按地址(引用)传递,只有按值传递

很多人,包括我,受书本知识消化不彻底的影响,认为 JS 中参数有两种传递方式:数字、字符串等按值传递;数组、对象等按地址(引用)传递。对此种观点,我们要谨慎。 var v1 = [] var ...
  • www3300300
  • www3300300
  • 2014年09月01日 11:08
  • 1214

PHP 函数的引用传递(地址传递&)问题

PHP 中的引用 在PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。在 PHP 中引用意味着用不同的名字访问同一个变量内容。最接近的比喻是 Unix 的文件名和文件本身—...
  • u013372487
  • u013372487
  • 2015年05月03日 17:40
  • 4298

JAVA中值传递和引用传递的三种情况

前言我们都知道,java中数据类型分为基本数据类型和引用数据类型。 基本数据类型 - 整型:byte,short,int,long - 浮点型:float,double ...
  • zhzhao999
  • zhzhao999
  • 2016年12月04日 00:14
  • 2695

Java到底有没有引用传递?

(1)“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。 (2)在Java里面只有基本类型和String,其它的都是...
  • qq598535550
  • qq598535550
  • 2016年10月29日 22:27
  • 4771

Java中只有值传递,没有引用传递

先来看一个作为程序员都熟悉的值传递的例子:... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x = x *2; } ......
  • qq_27258799
  • qq_27258799
  • 2016年05月17日 21:50
  • 1256

Java的参数传递到底是引用传递还是值传递

首先看一段代码:public static void main(String[] args) { Person a = new Person(23, "a"); Person b = ...
  • panyongcsd
  • panyongcsd
  • 2016年08月30日 17:14
  • 2075
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP 中引用 - 引用传递
举报原因:
原因补充:

(最多只允许输入30个字)