我很难理解一些&运营商使用。我遇到过多个例子,只指出那些我不知道他们真正做的事情......
我的意思是什么:
1)使用&在函数名称
function &foo() {}
2)使用&在函数参数
中function foo($id, &$desc) {}
3)usgin&在循环中
foreach ($data as $key => &$item) {}
答案 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将回答所有这些问题。