首页  >  文章  >  后端开发  >  PHP 通过引用调用

PHP 通过引用调用

WBOY
WBOY原创
2024-08-29 12:47:501068浏览

按引用调用就是将变量的引用作为函数参数传递。由于PHP不直接支持指针类机制,所以它支持引用来处理各种操作。在PHP语言中,如果修改任何函数内部的值,则该保存变量的实际值也会被修改;这在按值调用中无法实现。在调用“引用”中将变量作为引用传递时,可以使用与号 (&) 作为前缀。 & 符号本身代表一个变量被用作引用。引用函数也可以作为参数传递给另一个函数。在本主题中,我们将学习 PHP 通过引用调用。

广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法

使用它没有特殊的语法,但是,在将参数传递给函数时需要使用 & 符号。

函数声明可能如下所示:

function callByref(&$var)
{
$var.= 'inside the Call By Reference function.';
}

调用此函数时不需要任何特殊的东西;可以像普通函数一样使用(按值调用)。

$var = 'Yes, I am';
callByref ($var);

PHP 中的引用调用是如何工作的?

在继续通过引用进行调用之前,应该有一些要求,以便可以适合函数。然后,在该指定函数的声明中,我们可以使用参数变量的引用符号。让我们通过一个简单的例子来理解这一点。

function callByref(&$var)
{
$var.= 'Call By Reference function.';
}
$var = 'Try to check the reference, I am inside the ';

当我们尝试在此处打印 $var 时,将显示上述消息

echo $var;
// printing variable before calling function

现在调用函数,调用这个函数会修改变量的实际值

$var 按照函数内部的写法。

callByref ($var);
echo $var;
// this will be print the combined value of the string.

在下面提到的PHP语言中可以作为调用参考:

  • 变量 – 普通变量。
  • 返回引用的函数 – 返回引用的定义明确的函数也可以在按引用调用中作为函数参数传递(请参阅示例 E3)。

通过引用调用的示例

下面提到了不同的示例:

示例#1

一个简单的程序,使用引用调用来检查此函数的性质。在这里,我们可以在使用引用调用并从函数内部修改变量后检查实际值是否被修改。

代码:

<?php
function callByref(&$var)
{
$var.= ' This will be added to the function.';
}
$var = 'Value before calling the function.';
echo $var ."<br><br>"; // printing variable before callig function
callByref ($var);
echo $var;
?>

输出:

PHP 通过引用调用

示例#2

示例代码区分 PHP 中的按值调用和按引用调用。

代码

<?php
// call by value function
echo "<br>Swap functionality by call be value:<br>";
function SwapCallByValue($a, $b){
$c=$a;
$a=$b;
$b=$c;
echo "";
echo "<br>Value of a and b after swap: ";
echo $a . " ".$b;
}
$a = 10;
$b = 20;
echo "Value of a and b before swap: ";
echo $a . " ".$b;
SwapCallByValue($a, $b);
// swap functionality by call be a reference
echo "<br><br>Swap functionality by call by reference:<br>";
function SwapCallByRefernce(&$a,&$b)
{
$c=$a;
$a=$b;
$b=$c;
}
$a = 10;
$b = 20;
echo "Value of a and b before swap: ";
echo $a . " ".$b;
SwapCallByRefernce($a, $b);
echo "<br>Value of a and b after swap: ";
echo $a . " ".$b;
?>

输出:

PHP 通过引用调用

正如我们在上面的示例中看到的,如果我们在该函数外部打印 a 和 b 的值,则 call-by-swap 将不起作用。这是因为按值调用不会更改变量的实际副本。但在按引用调用中,我们可以看到在调用该函数后立即打印 a 和 b 的值,并且交换工作正常。这就是我们将处理按值调用和按引用调用的交换函数的全部内容。

示例 #3

代码:

<?php
// this is the main function inside which the a funtion will be passed as a parameter
function mainFunction(&$val)
{
$val++;
echo $val;
}
// this function will be used as a parameter
function &FunctionAsAParam()
{
$val = 15;
return $val;
}
echo "A value of a after calling the function: ";
$result = mainFunction(FunctionAsAParam()); // calling function, function as a reference parameter
?>

输出:

PHP 通过引用调用

在上面的例子中,我们可以看到引用函数FunctionAsAParam()被用作另一个函数参数。根据其中编写的代码,它分配主变量的值。函数mainFunction()是上面代码的主函数,是对使用FunctionAsAParam()作为参考函数参数后的值进行递增。我们可以通过多种方式将该函数用作参考参数。

结论

通过引用调用在创建时使用参数中的 & 符号,而不是在调用该函数时使用。在C或C++语言中,它通常在调用该函数时使用,与PHP不同。 PHP 通过引用调用就是创建或调用一个修改变量实际副本的函数。所以PHP中随意调用时不需要引用符号就会报错。

以上是PHP 通过引用调用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn