2010-03-05 9 views
6

Solo me preguntaba sobre el impacto en el rendimiento de copiar variables de php muy grandes. Por ejemplo, say $ arr es una enorme matriz. Si hago $ arr2 = $ arr, ¿esto es una copia profunda o es $ arr2 simplemente un puntero a $ arr como está en Java? Gracias por adelantado.Impacto en el rendimiento de copiar variables de php

+1

* (de referencia) * Copia de escritura en el lenguaje PHP: http://www.research.ibm.com/trl/people/mich/pub/200901_popl2009phpsem.pdf – Gordon

Respuesta

6

$arr2 = $arr crea una copia profunda. Pero la copia real solo ocurre cuando $ arr2 se modifica - PHP utiliza copy-on-write.

Si desea un "puntero" en lugar de una copia, use $arr2 =& $arr, lo que hace que $ arr2 sea una referencia a $ arr.

1

Si usa $ arr2 = & $ arr;

Será referencia del $ arr.

Cuestiones relacionadas