php使用'&'操作者

时间:2011-01-18 08:39:13

标签: php operators

  

可能重复:
  Reference - What does this symbol mean in PHP?

我很难理解一些&运营商使用。我遇到过多个例子,只指出那些我不知道他们真正做的事情......

我的意思是什么:

1)使用&在函数名称

function &foo() {}

2)使用&在函数参数

function foo($id, &$desc) {}

3)usgin&在循环中

foreach ($data as $key => &$item) {}

3 个答案:

答案 0 :(得分:6)

function &foo() {}

通过调用foo()引用返回变量。

function foo($id, &$desc) {}

将值作为第一个参数$id,将引用作为第二个参数$desc。如果在函数内修改了$desc,则调用代码传递的变量也会被修改。

前两个问题由我更清楚地回答,更清楚的例子here

而且:

foreach ($data as $key => &$item) {}

使用foreach通过引用修改数组的值。引用指向数组中的值,因此当您更改它们时,也会更改数组。如果您不需要知道循环中的密钥,也可以省略$key =>

答案 1 :(得分:2)

PHP manual有很多关于引用(&运算符)的部分,解释它们是什么以及如何使用它们。

在您的特定示例中:

1)是通过引用返回。你需要使用&在调用函数和声明函数时,就像你上面的那样:Return by Reference

2)通过引用传递参数。你只需要使用&在函数定义中,而不是在调用函数时:Passing by Reference

3)在foreach循环中使用引用。这允许您在循环内部时修改原始数组中的$ item值。

有关PHP引用的所有完整信息均为available in the manual

答案 2 :(得分:0)

引用的PHP documentation将回答所有这些问题。