例:
foreach ($veryFatArray as $key => $value) {
Run Code Online (Sandbox Code Playgroud)
foreach会通过引用$ value来分配$ key后面的值,还是$ value是存储在数组中的内容的副本?如果是,我怎么才能得到参考?数组值存储了大量数据,因此复制它们并不是很好.
不要试着再猜测翻译是这里故事的寓意.$value实际上是一个副本,但有效的副本.PHP使用pass-by-value(对于非对象),但也使用copy-on-write.这意味着如果你写:
foreach ($bigitems as $bigitem) {
echo $bigitem; // uses original
$bigitem = 'foo'; // item copied and assigned 'foo'
echo $bigitem; // uses copy
}
Run Code Online (Sandbox Code Playgroud)
只是声明你的意图:你想要使用数组值.让PHP在此之后对其进行排序.如果您打算更改数组,基本上只使用循环中的引用.否则,您将向发送代码的其他人发送错误消息.
PHP语言中的Copy-on-Write的第1部分应该告诉您有关PHP copy-on-write的所有信息.
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |