php使用'&';操作人员

php使用'&';操作人员,php,operators,Php,Operators,可能重复: 您好,我很难理解一些与操作员有关的用法。我遇到过很多例子,只指出那些我不知道它们真正的用途的例子 当我: 1) 在函数名中使用(&N) function &foo() {} 2) 在函数参数中使用&in function foo($id, &$desc) {} 3) usgin&in循环 foreach ($data as $key => &$item) {} 参考资料将回答所有这些问题 function &foo() {} 通过调用f

可能重复:

您好,我很难理解一些与操作员有关的用法。我遇到过很多例子,只指出那些我不知道它们真正的用途的例子

当我:

1) 在函数名中使用(&N)

function &foo() {}
2) 在函数参数中使用&in

function foo($id, &$desc) {}
3) usgin&in循环

foreach ($data as $key => &$item) {}
参考资料将回答所有这些问题

function &foo() {}
通过调用
foo()
通过引用返回变量

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

前两个问题由我用更清楚的例子更详细地回答

这是:

foreach ($data as $key => &$item) {}
使用
foreach
通过引用修改数组的值。引用指向数组中的值,因此当您更改这些值时,也会更改数组。如果您不需要知道循环中的键,也可以省去
$key=>

中有一个很大的参考部分(操作符(&O),解释它们是什么以及如何使用它们

在你的具体例子中:

1) 是通过引用返回的。调用函数和声明函数时,您需要使用&如上所述:

2) 正在通过引用传递参数。您只需要在函数定义中使用&而不需要在调用函数时使用:

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


关于PHP引用的所有完整信息都是。

当对引用使用
foreach
时,千万不要忘记引用一直指向循环后的最后一个元素。始终
unset()
it以防止出现问题(例如,稍后分配给具有相同名称的变量,导致修改最后一个数组元素)。
foreach ($data as $key => &$item) {}