按引用调用就是将变量的引用作为函数参数传递。由于PHP不直接支持指针类机制,所以它支持引用来处理各种操作。在PHP语言中,如果修改任何函数内部的值,则该保存变量的实际值也会被修改;这在按值调用中无法实现。在调用“引用”中将变量作为引用传递时,可以使用与号 (&) 作为前缀。 & 符号本身代表一个变量被用作引用。引用函数也可以作为参数传递给另一个函数。在本主题中,我们将学习 PHP 通过引用调用。
广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
使用它没有特殊的语法,但是,在将参数传递给函数时需要使用 & 符号。
函数声明可能如下所示:
function callByref(&$var) { $var.= 'inside the Call By Reference function.'; }
调用此函数时不需要任何特殊的东西;可以像普通函数一样使用(按值调用)。
$var = 'Yes, I am'; callByref ($var);
在继续通过引用进行调用之前,应该有一些要求,以便可以适合函数。然后,在该指定函数的声明中,我们可以使用参数变量的引用符号。让我们通过一个简单的例子来理解这一点。
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语言中可以作为调用参考:
下面提到了不同的示例:
一个简单的程序,使用引用调用来检查此函数的性质。在这里,我们可以在使用引用调用并从函数内部修改变量后检查实际值是否被修改。
代码:
<?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 中的按值调用和按引用调用。
代码
<?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; ?>
输出:
正如我们在上面的示例中看到的,如果我们在该函数外部打印 a 和 b 的值,则 call-by-swap 将不起作用。这是因为按值调用不会更改变量的实际副本。但在按引用调用中,我们可以看到在调用该函数后立即打印 a 和 b 的值,并且交换工作正常。这就是我们将处理按值调用和按引用调用的交换函数的全部内容。
代码:
<?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 ?>
输出:
在上面的例子中,我们可以看到引用函数FunctionAsAParam()被用作另一个函数参数。根据其中编写的代码,它分配主变量的值。函数mainFunction()是上面代码的主函数,是对使用FunctionAsAParam()作为参考函数参数后的值进行递增。我们可以通过多种方式将该函数用作参考参数。
通过引用调用在创建时使用参数中的 & 符号,而不是在调用该函数时使用。在C或C++语言中,它通常在调用该函数时使用,与PHP不同。 PHP 通过引用调用就是创建或调用一个修改变量实际副本的函数。所以PHP中随意调用时不需要引用符号就会报错。
以上是PHP 通过引用调用的详细内容。更多信息请关注PHP中文网其他相关文章!