PHP中的传值和传址是什么?


在这篇文章中,我们将学习PHP中的传值和传址。

现在,让我们详细了解这两个概念。

在PHP中,我们通常采用传值的方式将参数传递给函数。我们之所以采用这种方式,是因为如果函数内部改变了参数的值,函数外部的值不会发生改变。

但在某些情况下,我们可能需要修改函数参数。为了允许函数修改其参数,必须通过引用传递这些参数。

让我们从传址开始。正如前面提到的,我们可以将变量通过引用传递给函数,以便函数可以修改该变量。要开始通过引用传递参数的过程,请在函数定义中在参数名前添加一个取地址符 (&)。

示例

让我们用一个简单的例子来测试一下。

<?php
   function calculate(&$a){
      $a++;
   }
   $a=5;
   calculate($a);
   echo $a;
?>

输出

6

解释

这里我们声明了变量 $a 并将其作为引用传递给函数 calculate()。根据原理,如果 $a 的值在函数内部发生改变,那么它在函数外部也会发生改变。

注意

在函数调用中没有引用符号 - 只有在函数定义中才有。仅函数定义就足以正确地通过引用传递参数。在 PHP 5.4 版本中,如果您使用 calculate(&$a); ,则会报错。这是已弃用的用法。

示例

让我们测试一个例子来理解传值。

<?php
   function calculate($a){
      $a++;
   echo $a."<br/>";
   }
   $a=5;
   calculate($a);
   echo $a;
?>

输出

6
5

解释

这里我们将值作为传值传递给函数 calculate()。它的值在函数内部发生了改变,但在函数外部没有反映出来。变量的值在函数外部保持不变。

更新于:2020年6月29日

5K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告