如何在PHP函数中创建参数引用

时间:2013-06-16 10:35:52

标签: php function reference

我想将$ x增加1:

$x = 1;

function addOne($x) {
  $x++;
  return $x;
}

$x = addOne($x);

有没有办法用引用来做到这一点,所以我不需要return $x,我可以写addOne($x)

2 个答案:

答案 0 :(得分:3)

这是您正在寻找的,由&指示的by-ref参数。

$x = 1;

function addOne(&$x) {
  $x++;
}

addOne($x);

一些注意事项:

  • By-ref参数要求传入的值不是文字。鉴于我上面的例子,addOne(5)会抛出致命的异常
  • 对象(包括stdClass对象)不需要引用,因为从PHP 5开始,所有对象都通过引用传递。
  • 数组需要引用,因为PHP中的数组不被视为对象
  • 如果您想要通过引用传递的函数的返回值,您可以在函数名称上指明引用(例如function &foo())。

有关参考资料的更多信息:http://php.net/manual/en/language.references.php

答案 1 :(得分:1)

$x = 1;

function addOne(&$x) {
    $x++;
}

addOne($x);

&符号表示它通过引用获取参数。因此它在函数中递增$x,它也会影响调用范围中的$x变量。

另请参阅:http://php.net/references以快速了解它们。