试试这个..
您可以通过引用函数来传递变量,以便函数可以修改变量。语法如下:
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a is 6 here
?>
注意:函数调用没有参考符号 - 仅在函数定义上。仅函数定义就足以通过引用正确传递参数。从 PHP 5.3.0 开始,当您在 foo(&$a); 中使用 & 时,您将收到一条警告说“调用时传递引用”已被弃用。并且从 PHP 5.4.0 开始,调用时传递引用已被删除,因此使用它会引发致命错误。
通过引用传递
引用允许两个变量引用相同的内容。换句话说,一个变量指向它的内容(而不是成为那个内容)。通过引用传递允许两个变量以不同的名称指向相同的内容。与号 ( & ) 放在要引用的变量之前。
$a = 1;
$b = &$a; // $b references the same value as $a, currently 1
$b = $b + 1; // 1 is added to $b, which effects $a the same way
echo "b is equal to $b, and a is equal to $a";
输出:
b is equal to 2, and a is equal to 2
当您希望简单地更改原始变量并再次将其返回到相同的变量名称并为其分配新值时,请将其用于函数。
function add(&$var){ // The & is before the argument $var
$var++;
}
$a = 1;
$b = 10;
add($a);
echo "a is $a,";
add($b);
echo " a is $a, and b is $b"; //
输出:
a is 2, a is 2, and b is 11
您也可以这样做以使用 foreach 更改数组:
$array = array(1,2,3,4);
foreach ($array as &$value){
$value = $value + 10;
}
unset ($value); // Must be included, $value remains after foreach loop
print_r($array);
**Output:**
Array ( [0] => 11 [1] => 12 [2] => 13 [3] => 14 )
参考:http://php.net/manual/en/language.references.pass.php
http://www.phpreferencebook.com/samples/php-pass-by-reference/