& $ variable作为PHP中的函数参数

时间:2017-03-09 10:07:50

标签: php

我最近遇到了一个定义如下的函数:

function *functionname* (&$parameter1, &$parameter, $parameter3)

有人能告诉我&在$parameter1$parameter2前面是什么意思?谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

这意味着通过引用传递。

参考:http://php.net/manual/en/language.references.pass.php

通常情况下,PHP是pass by value但如果您希望按引用传递,则可以执行&$var

<?php
function foo(&$var)
{
    $var++;
}
function bar() // Note the missing &
{
    $a = 5;
    return $a;
}
foo(bar()); // Produces fatal error as of PHP 5.0.5, strict standards notice
            // as of PHP 5.1.1, and notice as of PHP 7.0.0

foo($a = 5); // Expression, not variable
foo(5); // Produces fatal error
?>

答案 1 :(得分:0)

http://php.net/manual/en/functions.arguments.php

  

要使函数的参数始终通过引用传递,请在函数定义中为参数名称添加&符号(&amp;):

答案 2 :(得分:0)

您正在通过引用分配该数组值。

通过引用(&amp; $)和$传递参数是当你通过引用传递参数时你处理原始变量,意味着如果你在函数内部改变它,它也会在它之外被改变,如果你将参数作为副本传递,函数创建此变量的复制实例,并处理此副本,因此如果您在函数中更改它,它将不会在其外部更改

Reference php