Php:$ var和&$ var有什么区别?

问题描述 投票:17回答:5

之间有什么区别

foreach ($my_array as $my_value) {
}

和:

foreach ($my_array as &$my_value) {
}

我能否请您举两个关于何时使用一个以及何时使用另一个的真实示例?

php var
5个回答
24
投票

第一个示例创建值的副本,而第二个示例使用对原始值的引用。因此,在第一个foreach运行之后,原始数组仍保持不变。在第二个foreach之后,可能已经修改了原始数组,因为它是由引用处理的。]

某些本地PHP函数已经可以这种方式工作,例如shuffle()可以重新排列数组的内容。您会注意到该函数不会返回数组,您只需调用它即可:

shuffle()

并且它发挥了魔力,因为它通过引用而不是创建副本来与数组一起工作。

然后有些函数不传递任何内容通过引用

,而是处理原始值的副本,例如$myArray = array('foo', 'bar', 'fizz', 'buzz'); shuffle( $myArray ); // $myArray is now shuffled ,它返回新的结果字符串:
ucwords()

请参见ucwords()


6
投票

$myString = "hello world"; $myString = ucwords( $myString ); // $myString is now capitalized 很好地描述了它。仅出于完整性考虑,这里有两个示例:


0
投票

[在变量前加一个&符号表示您正在创建“参考”。 PHP参考就像您计算机上的快捷方式或符号链接。您可以创建一个指针变量,该变量只是相同数据的另一个名称。


0
投票

一个实际使用的例子是,您需要用很少的代码行来更改数组的内容


0
投票

我仅在必须读取csv文件以了解定界符时才使用引用。只需走第一行:

© www.soinside.com 2019 - 2024. All rights reserved.