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()。它的值在函数内部发生了改变,但在函数外部没有反映出来。变量的值在函数外部保持不变。
广告