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


How to Create Parameter References in a PHP Function

我想让$x增加1:

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

对于引用是否有这样的方法,所以我不需要return $x,我可以直接写addOne($x) ?

这就是你要找的,一个由&指示的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

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

&符号表示它通过引用获取参数。所以它增加了函数中的$x,它也会影响调用作用域中的$x变量。

请参见:http://php.net/references获取有关它们的快速概述。