我想让$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
变量。