数组参数传递:copy on write是隐式的?

时间:2015-07-21 07:25:27

标签: php

我想知道数组参数传递的表现:值得添加'通过引用传递'避免数据副本的参数说明符,或者运算符已经隐式实现了这种微优化?

让我们说我有一个非顺序键索引的数组(当然)。我写过这个帮手

function position_in_array($needle, &$haystack) {
    $k = array_search($needle, $haystack);
    return $k === false ? false : array_search($k, array_keys($haystack));
}

我可以看到from documentation让我认为参数数组 copy 可能真的是复制写入

如果这样的假设证明是正确的,我会删除'参考'说明符。

1 个答案:

答案 0 :(得分:2)

  

PHP是一种动态的,松散类型的语言,它使用写时复制和引用计数。

是的,PHP使用copy on write。

您不需要指定&除非您需要修改传递给您的函数的参数(这意味着您不希望复制写入,但真正的参考)

正如N.B在变量介绍中所评论的那样,it's taken from the manual